結果

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

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 CE 0 2ms 8064KB
2 CE 0 1ms 8704KB
3 CE 0 2ms 7936KB
4 CE 0 2ms 8656KB
5 CE 0 2ms 7936KB
6 CE 0 2ms 8400KB
7 CE 0 2ms 8448KB
8 CE 0 2ms 7952KB
9 CE 0 1ms 8656KB
10 CE 0 2ms 8320KB
テストケース 結果 得点 実行時間 メモリ使用量
11 CE 0 2ms 8256KB
12 CE 0 2ms 8032KB
13 CE 0 2ms 8704KB
14 CE 0 2ms 8400KB
15 CE 0 2ms 8400KB
16 CE 0 2ms 7824KB
17 CE 0 2ms 8416KB
18 CE 0 2ms 8400KB
19 CE 0 2ms 8688KB
20 CE 0 2ms 8432KB
テストケース 結果 得点 実行時間 メモリ使用量
21 CE 0 279ms 7504KB
22 CE 0 377ms 8048KB
23 CE 0 128ms 8640KB
24 CE 0 240ms 8432KB
25 CE 0 272ms 7888KB
26 CE 0 349ms 8736KB
27 CE 0 337ms 8400KB
28 CE 0 240ms 8128KB
29 CE 0 212ms 8032KB
30 CE 0 341ms 8416KB
テストケース 結果 得点 実行時間 メモリ使用量
31 CE 0 147ms 8416KB
32 CE 0 289ms 8688KB
33 CE 0 302ms 8384KB
34 CE 0 172ms 7616KB
35 CE 0 312ms 8368KB
36 CE 0 260ms 8688KB
37 CE 0 251ms 8720KB
38 CE 0 250ms 8688KB
39 CE 0 266ms 7936KB
40 CE 0 300ms 8208KB
テストケース 結果 得点 実行時間 メモリ使用量
41 CE 0 336ms 7968KB
42 CE 0 171ms 7248KB
43 CE 0 216ms 8208KB
44 CE 0 209ms 8432KB
45 CE 0 212ms 7552KB
46 CE 0 153ms 8432KB
47 CE 0 385ms 8432KB
48 CE 0 217ms 8400KB
49 CE 0 181ms 8432KB
50 CE 0 145ms 8720KB
テストケース 結果 得点 実行時間 メモリ使用量
51 CE 0 100ms 8400KB
52 CE 0 253ms 7472KB
53 CE 0 283ms 8432KB
54 CE 0 205ms 7504KB
55 CE 0 235ms 8400KB
56 CE 0 246ms 8064KB
57 CE 0 191ms 7904KB
58 CE 0 167ms 8704KB
59 CE 0 148ms 8400KB
60 CE 0 261ms 8624KB
テストケース 結果 得点 実行時間 メモリ使用量
61 CE 0 171ms 8416KB
62 CE 0 208ms 7472KB
63 CE 0 311ms 8416KB
64 CE 0 176ms 8144KB
65 CE 0 160ms 8672KB
66 CE 0 168ms 8112KB
67 CE 0 192ms 8128KB
68 CE 0 124ms 7952KB
69 CE 0 115ms 8016KB
70 CE 0 278ms 7952KB
テストケース 結果 得点 実行時間 メモリ使用量
71 CE 0 69ms 8400KB
72 CE 0 297ms 8064KB
73 CE 0 449ms 7536KB
74 CE 0 228ms 7632KB
75 CE 0 101ms 8704KB
76 CE 0 88ms 8688KB
77 CE 0 179ms 8416KB
78 CE 0 139ms 7472KB
79 CE 0 149ms 8336KB
80 CE 0 260ms 8416KB
テストケース 結果 得点 実行時間 メモリ使用量
81 CE 0 169ms 8240KB
82 CE 0 152ms 7264KB
83 CE 0 205ms 8048KB
84 CE 0 213ms 8688KB
85 CE 0 223ms 8064KB
86 CE 0 139ms 8448KB
87 CE 0 178ms 7520KB
88 CE 0 188ms 8288KB
89 CE 0 118ms 8000KB
90 CE 0 215ms 8192KB
テストケース 結果 得点 実行時間 メモリ使用量
91 CE 0 187ms 8416KB
92 CE 0 179ms 8416KB
93 CE 0 243ms 8384KB
94 CE 0 151ms 8144KB
95 CE 0 133ms 7248KB
96 CE 0 334ms 8448KB
97 CE 0 181ms 8640KB
98 CE 0 74ms 8160KB
99 CE 0 273ms 8432KB
100 CE 0 183ms 7872KB

ソースコード

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

#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;                
        }
    }
}