結果

提出番号 1271
提出者 HIBIKU
言語 C++
提出日時 2018-06-20 21:24:15
問題名 (62)SuperCon2018(独自テスト)
結果 AC
点数 2796000

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 380000 389ms 8480KB
2 AC 430000 440ms 7968KB
3 AC 370000 377ms 8240KB
4 AC 380000 384ms 7504KB
5 AC 430000 438ms 8064KB
6 AC 370000 376ms 8368KB
7 AC 330000 340ms 8016KB
8 AC 440000 449ms 8400KB
9 AC 380000 390ms 8720KB
10 AC 410000 418ms 8432KB
テストケース 結果 得点 実行時間 メモリ使用量
11 AC 250000 258ms 7904KB
12 AC 440000 446ms 8400KB
13 AC 220000 227ms 8016KB
14 AC 340000 353ms 8112KB
15 AC 370000 374ms 7872KB
16 AC 430000 437ms 8384KB
17 AC 330000 334ms 7248KB
18 AC 440000 445ms 8176KB
19 AC 440000 444ms 8416KB
20 AC 300000 311ms 7936KB
テストケース 結果 得点 実行時間 メモリ使用量
21 AC 400000 405ms 8272KB
22 AC 330000 338ms 7616KB
23 AC 180000 191ms 8064KB
24 AC 260000 271ms 8400KB
25 AC 340000 346ms 8640KB
26 AC 340000 353ms 8384KB
27 AC 370000 376ms 8720KB
28 AC 300000 312ms 7792KB
29 AC 260000 273ms 7520KB
30 AC 430000 435ms 7808KB
テストケース 結果 得点 実行時間 メモリ使用量
31 AC 160000 171ms 8368KB
32 AC 400000 414ms 8112KB
33 AC 370000 374ms 8384KB
34 AC 190000 201ms 8352KB
35 AC 240000 242ms 8704KB
36 AC 360000 367ms 8416KB
37 AC 350000 356ms 8128KB
38 AC 350000 355ms 7552KB
39 AC 290000 296ms 8224KB
40 AC 420000 422ms 7792KB
テストケース 結果 得点 実行時間 メモリ使用量
41 AC 420000 428ms 7808KB
42 AC 220000 223ms 8432KB
43 AC 300000 311ms 7984KB
44 AC 260000 265ms 8432KB
45 AC 260000 270ms 7520KB
46 AC 170000 175ms 8400KB
47 AC 340000 343ms 8432KB
48 AC 230000 235ms 8688KB
49 AC 230000 235ms 7600KB
50 AC 120000 128ms 7792KB
テストケース 結果 得点 実行時間 メモリ使用量
51 AC 120000 130ms 8416KB
52 AC 360000 363ms 8400KB
53 AC 310000 315ms 7824KB
54 AC 220000 227ms 8480KB
55 AC 300000 302ms 7648KB
56 AC 270000 279ms 8688KB
57 AC 260000 265ms 8416KB
58 AC 230000 239ms 8416KB
59 AC 190000 199ms 8048KB
60 AC 360000 373ms 8096KB
テストケース 結果 得点 実行時間 メモリ使用量
61 AC 170000 177ms 8192KB
62 AC 260000 263ms 7904KB
63 AC 390000 397ms 8064KB
64 AC 230000 238ms 8416KB
65 AC 220000 228ms 8016KB
66 AC 210000 214ms 7248KB
67 AC 240000 251ms 7248KB
68 AC 140000 142ms 8480KB
69 AC 150000 155ms 8416KB
70 AC 340000 347ms 8000KB
テストケース 結果 得点 実行時間 メモリ使用量
71 AC 70000 79ms 8080KB
72 AC 320000 330ms 8352KB
73 AC 390000 397ms 7904KB
74 AC 250000 254ms 8672KB
75 AC 150000 156ms 7856KB
76 AC 120000 127ms 8192KB
77 AC 220000 232ms 8000KB
78 AC 190000 199ms 8336KB
79 AC 210000 216ms 8432KB
80 AC 280000 290ms 8704KB
テストケース 結果 得点 実行時間 メモリ使用量
81 AC 230000 240ms 8016KB
82 AC 190000 196ms 7984KB
83 AC 220000 225ms 8480KB
84 AC 180000 186ms 8704KB
85 AC 280000 285ms 7824KB
86 AC 190000 198ms 8384KB
87 AC 220000 232ms 8416KB
88 AC 260000 263ms 8128KB
89 AC 120000 131ms 8272KB
90 AC 240000 243ms 8256KB
テストケース 結果 得点 実行時間 メモリ使用量
91 AC 230000 239ms 8144KB
92 AC 220000 233ms 7824KB
93 AC 300000 303ms 8432KB
94 AC 180000 191ms 8128KB
95 AC 160000 172ms 8400KB
96 AC 420000 426ms 7792KB
97 AC 250000 258ms 8416KB
98 AC 80000 85ms 8208KB
99 AC 300000 306ms 7904KB
100 AC 260000 263ms 7808KB

ソースコード

#include<stdio.h>
#include<time.h>

int scN,scM;
int scB[2][10];
clock_t scStartTime,scEndTime;
void scInput(){
	int i;
	scanf("%d%d",&scN,&scM);
	for(i=0;i<scM;++i){scanf("%d%d",&scB[0][i],&scB[1][i]);}
	scStartTime=clock();
}
void scOutput(int s){
	scEndTime=clock();
	printf("Ans= %d, time=%d\n",s,(int)(scEndTime-scStartTime));
}

#include <stdlib.h>
#include <math.h>
#include <algorithm>
using namespace std;
int ans=0;
int vx[4] = { 1,0,-1,0 }, vy[4] = { 0,1,0,-1 };
void dfs(int n, bool f[100][100], int x, int y){
	if(n>=scN){
		if(x==50&&y==50){
			ans++;
		}
		return;
	}
	if (n > scN / 2 && n < scN) {
		if (abs(50 - x) + abs(50 - y) > scN - n) return;
	}
	
	for(int i=0;i<4;i++){
		int nx = x + vx[i], ny = y + vy[i];
		if(!f[nx][ny]&&!(nx==50&&ny==50&&n==scN-1)) continue;
		if (n == scN - 1 && (nx != 50 || ny != 50)) continue;
		f[nx][ny]=false;
		dfs(n+1,f,nx,ny);
		f[nx][ny]=true;
		f[50][50] = false;
	}
}	

int main(){
	scInput();
	bool f[100][100];
	for (int i = 0; i < 100; i++) {
		for (int j = 0; j < 100; j++) {
			f[i][j] = true;
		}
	}
	for (int i = 0; i < scM; i++) {
		int sx=scB[0][i]+50;
		int sy=scB[1][i]+50;
		if(0<=sx&&sx<100&&0<=sy&&sy<100) f[sx][sy] = false;
	}
	f[50][50]=false;
	dfs(0,f,50,50);
	scOutput(ans);
	return 0;
}