結果

提出番号 1267
提出者 pluton
言語 C++
提出日時 2018-06-20 21:12:44
問題名 (62)SuperCon2018(独自テスト)
結果 CE
点数 0

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 CE 0 2ms 7872KB
2 CE 0 2ms 7488KB
3 CE 0 1ms 7472KB
4 CE 0 2ms 7776KB
5 CE 0 2ms 8432KB
6 CE 0 2ms 8736KB
7 CE 0 2ms 7952KB
8 CE 0 1ms 8624KB
9 CE 0 1ms 8672KB
10 CE 0 1ms 7520KB
テストケース 結果 得点 実行時間 メモリ使用量
11 CE 0 2ms 7952KB
12 CE 0 2ms 8432KB
13 CE 0 2ms 8432KB
14 CE 0 2ms 8032KB
15 CE 0 1ms 8736KB
16 CE 0 2ms 7968KB
17 CE 0 2ms 8400KB
18 CE 0 2ms 8240KB
19 CE 0 2ms 8032KB
20 CE 0 2ms 7248KB
テストケース 結果 得点 実行時間 メモリ使用量
21 CE 0 279ms 7504KB
22 CE 0 237ms 8304KB
23 CE 0 144ms 8016KB
24 CE 0 239ms 8400KB
25 CE 0 305ms 7632KB
26 CE 0 278ms 8048KB
27 CE 0 303ms 8304KB
28 CE 0 239ms 7648KB
29 CE 0 213ms 8096KB
30 CE 0 340ms 8432KB
テストケース 結果 得点 実行時間 メモリ使用量
31 CE 0 133ms 8736KB
32 CE 0 323ms 8432KB
33 CE 0 293ms 7984KB
34 CE 0 156ms 8304KB
35 CE 0 222ms 8160KB
36 CE 0 290ms 8432KB
37 CE 0 251ms 7808KB
38 CE 0 247ms 8672KB
39 CE 0 238ms 7504KB
40 CE 0 296ms 8672KB
テストケース 結果 得点 実行時間 メモリ使用量
41 CE 0 341ms 8400KB
42 CE 0 158ms 8656KB
43 CE 0 241ms 7792KB
44 CE 0 187ms 8112KB
45 CE 0 212ms 8000KB
46 CE 0 154ms 8192KB
47 CE 0 272ms 7536KB
48 CE 0 211ms 8016KB
49 CE 0 181ms 8016KB
50 CE 0 101ms 7488KB
テストケース 結果 得点 実行時間 メモリ使用量
51 CE 0 89ms 8640KB
52 CE 0 294ms 8432KB
53 CE 0 283ms 7232KB
54 CE 0 203ms 8416KB
55 CE 0 210ms 8656KB
56 CE 0 222ms 8720KB
57 CE 0 205ms 8400KB
58 CE 0 168ms 8704KB
59 CE 0 137ms 8064KB
60 CE 0 259ms 8480KB
テストケース 結果 得点 実行時間 メモリ使用量
61 CE 0 120ms 8688KB
62 CE 0 234ms 8448KB
63 CE 0 312ms 8400KB
64 CE 0 175ms 8432KB
65 CE 0 173ms 7216KB
66 CE 0 167ms 7904KB
67 CE 0 192ms 7984KB
68 CE 0 124ms 8400KB
69 CE 0 116ms 8192KB
70 CE 0 272ms 8400KB
テストケース 結果 得点 実行時間 メモリ使用量
71 CE 0 69ms 8112KB
72 CE 0 295ms 7936KB
73 CE 0 313ms 8432KB
74 CE 0 227ms 7952KB
75 CE 0 112ms 8064KB
76 CE 0 89ms 7888KB
77 CE 0 161ms 8192KB
78 CE 0 139ms 8240KB
79 CE 0 150ms 8672KB
80 CE 0 232ms 8688KB
テストケース 結果 得点 実行時間 メモリ使用量
81 CE 0 200ms 8176KB
82 CE 0 136ms 8240KB
83 CE 0 202ms 8144KB
84 CE 0 149ms 8080KB
85 CE 0 197ms 7872KB
86 CE 0 152ms 8400KB
87 CE 0 178ms 7776KB
88 CE 0 183ms 8624KB
89 CE 0 118ms 7808KB
90 CE 0 214ms 8416KB
テストケース 結果 得点 実行時間 メモリ使用量
91 CE 0 187ms 7952KB
92 CE 0 179ms 8400KB
93 CE 0 234ms 8432KB
94 CE 0 134ms 8720KB
95 CE 0 136ms 7968KB
96 CE 0 332ms 8416KB
97 CE 0 180ms 8720KB
98 CE 0 74ms 8368KB
99 CE 0 253ms 8304KB
100 CE 0 214ms 7952KB

ソースコード

//SuperCon 2018 予選問題1級
//
//チーム名: COREDUMP(こあだんぷ)
​
#include <stdio.h>

#define ORIGIN 20
//原点を(20, 20)とします

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));
}
​
​
const int dx[] = {1, 0, -1, 0};
const int dy[] = {0, 1, 0, -1};
​
bool map[ORIGIN * 2][ORIGIN * 2];
int ans = 0;
​
void dfs(int x = ORIGIN, int y = ORIGIN, int count = 0);
//長さがNで原点に戻るSALをDFS(深さ優先探索)で探索する関数の宣言です

int abs(int x){
    if(x < 0) return -x;
    return x;
}
​
int main(){
​
    scInput();
​
	for(int i = 0; i < scM; ++i){
		map[scB[0][i] + ORIGIN][scB[1][i] + ORIGIN] = true;
	}
	//予め障害物の座標を保存しておきます
	dfs();
​
    scOutput(ans);
​
    return 0;
}
​
void dfs(int x, int y, int count){
    int dis = abs(x - ORIGIN) + abs(y - ORIGIN);
	if(dis > scN - count){
		return;
	}
	//原点からの距離が残りの回数で戻れる距離より大きいときに探索を中止します
​
	if(dis == 0 && count > 0){
		if(scN == count){
			++ans;
		}
		return;
	}
	//原点に到達し、長さがNの場合のみ、答えに1を足します
	
    for(int i = 0; i < 4; i++){
        int rx = x + dx[i];
        int ry = y + dy[i];
​
        if(!map[rx][ry]){
            map[rx][ry] = true;
            dfs(rx, ry, count + 1);
            map[rx][ry] = false;                
        }
    }
}