結果

提出番号 1303
提出者 WA_TLE
言語 C++
提出日時 2018-06-20 22:30:12
問題名 (62)SuperCon2018(独自テスト)
結果 AC
点数 2637000

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 400000 412ms 8432KB
2 AC 400000 405ms 8192KB
3 AC 390000 396ms 8432KB
4 AC 400000 409ms 8384KB
5 AC 400000 403ms 7632KB
6 AC 340000 350ms 8016KB
7 AC 280000 283ms 8736KB
8 AC 420000 425ms 8432KB
9 AC 380000 387ms 8688KB
10 AC 350000 357ms 8480KB
テストケース 結果 得点 実行時間 メモリ使用量
11 AC 270000 278ms 8432KB
12 AC 360000 368ms 8720KB
13 AC 200000 205ms 7984KB
14 AC 320000 327ms 8416KB
15 AC 390000 397ms 7952KB
16 AC 360000 364ms 8672KB
17 AC 300000 308ms 8416KB
18 AC 400000 411ms 8016KB
19 AC 400000 410ms 8064KB
20 AC 260000 265ms 8720KB
テストケース 結果 得点 実行時間 メモリ使用量
21 AC 360000 372ms 8432KB
22 AC 290000 294ms 8208KB
23 AC 160000 168ms 7968KB
24 AC 280000 286ms 7520KB
25 AC 340000 347ms 8112KB
26 AC 320000 326ms 8416KB
27 AC 390000 397ms 8400KB
28 AC 280000 288ms 8416KB
29 AC 250000 255ms 7952KB
30 AC 360000 364ms 8464KB
テストケース 結果 得点 実行時間 メモリ使用量
31 AC 180000 189ms 8416KB
32 AC 370000 379ms 7248KB
33 AC 340000 346ms 8400KB
34 AC 200000 214ms 7520KB
35 AC 230000 234ms 8672KB
36 AC 340000 342ms 8240KB
37 AC 340000 343ms 8112KB
38 AC 320000 326ms 7616KB
39 AC 300000 312ms 8368KB
40 AC 380000 392ms 7616KB
テストケース 結果 得点 実行時間 メモリ使用量
41 AC 400000 410ms 8448KB
42 AC 200000 208ms 8192KB
43 AC 280000 285ms 7776KB
44 AC 240000 246ms 8416KB
45 AC 240000 250ms 8416KB
46 AC 180000 191ms 8016KB
47 AC 310000 318ms 7648KB
48 AC 220000 227ms 8672KB
49 AC 220000 222ms 8416KB
50 AC 120000 128ms 8096KB
テストケース 結果 得点 実行時間 メモリ使用量
51 AC 110000 116ms 8304KB
52 AC 300000 307ms 7904KB
53 AC 340000 343ms 8416KB
54 AC 230000 240ms 8432KB
55 AC 280000 294ms 8400KB
56 AC 300000 302ms 8432KB
57 AC 240000 246ms 7968KB
58 AC 210000 221ms 7984KB
59 AC 180000 191ms 7248KB
60 AC 340000 342ms 8384KB
テストケース 結果 得点 実行時間 メモリ使用量
61 AC 140000 149ms 7824KB
62 AC 260000 272ms 8160KB
63 AC 370000 376ms 8016KB
64 AC 220000 230ms 7632KB
65 AC 200000 212ms 8416KB
66 AC 190000 201ms 7952KB
67 AC 210000 215ms 8288KB
68 AC 140000 152ms 8112KB
69 AC 140000 150ms 7952KB
70 AC 280000 292ms 7520KB
テストケース 結果 得点 実行時間 メモリ使用量
71 AC 80000 88ms 8000KB
72 AC 340000 348ms 7984KB
73 AC 370000 378ms 7968KB
74 AC 260000 269ms 8400KB
75 AC 140000 146ms 8400KB
76 AC 100000 110ms 8288KB
77 AC 190000 201ms 8336KB
78 AC 180000 185ms 8128KB
79 AC 190000 199ms 8400KB
80 AC 300000 307ms 7984KB
テストケース 結果 得点 実行時間 メモリ使用量
81 AC 210000 218ms 7888KB
82 AC 180000 182ms 8416KB
83 AC 230000 236ms 8144KB
84 AC 180000 181ms 8704KB
85 AC 260000 262ms 7984KB
86 AC 180000 182ms 7952KB
87 AC 190000 196ms 8464KB
88 AC 240000 242ms 8064KB
89 AC 130000 139ms 8096KB
90 AC 240000 252ms 7776KB
テストケース 結果 得点 実行時間 メモリ使用量
91 AC 220000 222ms 8016KB
92 AC 190000 195ms 8416KB
93 AC 240000 253ms 7888KB
94 AC 170000 178ms 7952KB
95 AC 160000 173ms 8144KB
96 AC 390000 400ms 8112KB
97 AC 210000 219ms 8336KB
98 AC 90000 95ms 7840KB
99 AC 320000 323ms 7808KB
100 AC 230000 241ms 8128KB

ソースコード

#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<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<cmath>
#include<array>
using namespace std;
#define llint long long
const int ntyu=10;//真ん中
const int basiz=21;
struct state{
	array<int,basiz>ban;
	int gy,gx;
};
const int dx[4]={1,0,-1,0};
const int dy[4]={0,-1,0,1};
llint solve(state&in,int turn){
	//状態、残りターン
	if(turn!=scN&&in.gy==ntyu&&in.gx==ntyu){return 0;}
	if(abs(ntyu-in.gy)+abs(ntyu-in.gx)>turn){return 0;}
	if(turn==1){return 1;}//必ず1通りなので
	llint ans=0;
	for(int d=0;d<4;d++){
		int ny=in.gy+dy[d];
		int nx=in.gx+dx[d];
		if(ny<0||ny>basiz||nx<0||nx>basiz){continue;}
		if((in.ban[ny])&(1<<nx)){continue;}//そこにはすでに訪れている
		in.ban[ny]+=(1<<nx);
		in.gy+=dy[d];
		in.gx+=dx[d];
		ans+=solve(in,turn-1);
		in.ban[ny]-=(1<<nx);
		in.gy-=dy[d];
		in.gx-=dx[d];//戻している
	}
	return ans;
}
int main(void){
	scInput();
	state in;
	in.gy=ntyu;
	in.gx=ntyu;
	for(int i=0;i<basiz;i++){in.ban[i]=0;}
	for(int i=0;i<scM;i++){
		int sy=scB[0][i]+ntyu;
		int sx=scB[1][i]+ntyu;
		if(sy<0||sy>basiz||sx<0||sx>basiz){continue;}
		in.ban[sy]+=(1<<sx);
	}
	scOutput(solve(in,scN));
	
	return 0;
}