結果

提出番号 1318
提出者 jellyfish
言語 C++
提出日時 2018-06-21 17:21:51
問題名 (62)SuperCon2018(独自テスト)
結果 TLE
点数 0

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 TLE 0 20002ms 0KB
2 TLE 0 20002ms 0KB
3 TLE 0 19708ms 8336KB
4 TLE 0 20002ms 0KB
5 TLE 0 19986ms 8176KB
6 TLE 0 17233ms 8416KB
7 TLE 0 15578ms 8304KB
8 TLE 0 20002ms 0KB
9 TLE 0 20002ms 0KB
10 TLE 0 17218ms 8720KB
テストケース 結果 得点 実行時間 メモリ使用量
11 TLE 0 13628ms 8064KB
12 TLE 0 20002ms 0KB
13 TLE 0 9161ms 8064KB
14 TLE 0 16334ms 7520KB
15 TLE 0 17763ms 8400KB
16 TLE 0 18142ms 8656KB
17 TLE 0 15389ms 8416KB
18 TLE 0 20002ms 0KB
19 TLE 0 20002ms 0KB
20 TLE 0 12892ms 8112KB
テストケース 結果 得点 実行時間 メモリ使用量
21 TLE 0 18384ms 8144KB
22 TLE 0 15736ms 8176KB
23 TLE 0 6660ms 8672KB
24 TLE 0 14299ms 8416KB
25 TLE 0 15806ms 7904KB
26 TLE 0 16307ms 7984KB
27 TLE 0 17926ms 7920KB
28 TLE 0 13002ms 8256KB
29 TLE 0 11455ms 8448KB
30 TLE 0 20002ms 0KB
テストケース 結果 得点 実行時間 メモリ使用量
31 TLE 0 7615ms 8384KB
32 TLE 0 17337ms 8704KB
33 TLE 0 15745ms 8272KB
34 TLE 0 9703ms 8272KB
35 TLE 0 13016ms 7520KB
36 TLE 0 17275ms 7232KB
37 TLE 0 15062ms 8720KB
38 TLE 0 16415ms 7952KB
39 TLE 0 14261ms 8672KB
40 TLE 0 17722ms 8720KB
テストケース 結果 得点 実行時間 メモリ使用量
41 TLE 0 20002ms 0KB
42 TLE 0 10504ms 8128KB
43 TLE 0 14614ms 8368KB
44 TLE 0 12494ms 8432KB
45 TLE 0 11453ms 8400KB
46 TLE 0 9518ms 7824KB
47 TLE 0 16164ms 7776KB
48 TLE 0 11472ms 8688KB
49 TLE 0 10115ms 8352KB
50 TLE 0 6433ms 8064KB
テストケース 結果 得点 実行時間 メモリ使用量
51 TLE 0 5156ms 7696KB
52 TLE 0 17014ms 8416KB
53 TLE 0 17014ms 7952KB
54 TLE 0 12294ms 8016KB
55 TLE 0 14388ms 8448KB
56 TLE 0 14998ms 7984KB
57 TLE 0 12531ms 8416KB
58 TLE 0 11387ms 7552KB
59 TLE 0 7052ms 8240KB
60 TLE 0 15791ms 8704KB
テストケース 結果 得点 実行時間 メモリ使用量
61 TLE 0 8424ms 8064KB
62 TLE 0 14100ms 8000KB
63 TLE 0 17030ms 8304KB
64 TLE 0 8465ms 8656KB
65 TLE 0 11003ms 8416KB
66 TLE 0 10328ms 7232KB
67 TLE 0 12091ms 8400KB
68 TLE 0 7696ms 8416KB
69 TLE 0 6236ms 8400KB
70 TLE 0 16611ms 8176KB
テストケース 結果 得点 実行時間 メモリ使用量
71 TLE 0 3324ms 7856KB
72 TLE 0 17948ms 7600KB
73 TLE 0 17770ms 8112KB
74 TLE 0 12555ms 8304KB
75 TLE 0 5492ms 8288KB
76 TLE 0 6135ms 7632KB
77 TLE 0 11314ms 8000KB
78 TLE 0 8742ms 8208KB
79 TLE 0 9378ms 8352KB
80 TLE 0 14391ms 8704KB
テストケース 結果 得点 実行時間 メモリ使用量
81 TLE 0 11631ms 8432KB
82 TLE 0 9466ms 7920KB
83 TLE 0 12360ms 8016KB
84 TLE 0 9341ms 8256KB
85 TLE 0 13711ms 7632KB
86 TLE 0 9560ms 8144KB
87 TLE 0 11358ms 7936KB
88 TLE 0 12674ms 8432KB
89 TLE 0 7247ms 7984KB
90 TLE 0 13362ms 8432KB
テストケース 結果 得点 実行時間 メモリ使用量
91 TLE 0 10604ms 8448KB
92 TLE 0 11302ms 7232KB
93 TLE 0 14641ms 8384KB
94 TLE 0 8428ms 8224KB
95 TLE 0 6378ms 7520KB
96 TLE 0 20002ms 0KB
97 TLE 0 11304ms 8464KB
98 TLE 0 4017ms 8128KB
99 TLE 0 15325ms 8704KB
100 TLE 0 12851ms 7536KB

ソースコード

#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 <math.h>
#include <cstdlib>

int main() {

	scInput();

	long long road = 0;
	long long max = (long long)pow(4, scN);
	int x = 9;
	int y = 9;
	bool fail = false;
	int count = 0;
	for (int i = 0; i < scM; i++) {
		scB[0][i] += 9;
		scB[1][i] += 9;
	}

	


	for (; road < max; road++) {
		bool hit[19][19] = { {} };
		for (int i = 0; i < scM; i++) {
			hit[scB[0][i]][scB[1][i]] = true;
		}
		
		x = 9;
		y = 9;
		fail = false;
		for (int dig = scN - 1; dig >= 0; dig--) {
			int go = ((road >> (dig * 2)) % 4);
			if (abs(9 - x) + abs(9 - y) > dig + 1) {
				fail = true;
				road += (long long)pow(4, dig);
				break;
			}
			if (go == 0) {
				if (hit[++x][y]) {
					road += (long long)pow(4, dig);
					fail = true;
					break;
				}
				hit[x][y] = true;
			}
			if (go == 1) {
				if (hit[x][++y]) {
					road += (long long)pow(4, dig);
					fail = true;
					break;
				}
				hit[x][y] = true;
			}
			if (go == 2) {
				if (hit[--x][y]) {
					road += (long long)pow(4, dig);
					fail = true;
					break;
				}
				hit[x][y] = true;
			}
			if (go == 3) {
				if (hit[x][--y]) {
					road += (long long)pow(4, dig);
					fail = true;
					break;
				}
				hit[x][y] = true;
			}
		}

		if (fail) {
			road--; continue;
		}

		if (x == 9 && y == 9) count++;

	}


	scOutput(count);

	return 0;
}