| 提出番号 | 1301 |
|---|---|
| 提出者 | tatyam |
| 言語 | C++ |
| 提出日時 | 2018-06-20 22:23:18 |
| 問題名 | (62)SuperCon2018(独自テスト) |
| 結果 | AC |
| 点数 | 1219000 |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 170000 | 179ms | 7920KB |
| 2 | AC | 170000 | 176ms | 8672KB |
| 3 | AC | 180000 | 189ms | 8384KB |
| 4 | AC | 190000 | 195ms | 7600KB |
| 5 | AC | 180000 | 192ms | 7824KB |
| 6 | AC | 160000 | 165ms | 8192KB |
| 7 | AC | 140000 | 148ms | 8288KB |
| 8 | AC | 190000 | 195ms | 8400KB |
| 9 | AC | 190000 | 197ms | 8384KB |
| 10 | AC | 160000 | 168ms | 8480KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 11 | AC | 130000 | 135ms | 8400KB |
| 12 | AC | 190000 | 194ms | 8016KB |
| 13 | AC | 90000 | 97ms | 7920KB |
| 14 | AC | 140000 | 142ms | 8416KB |
| 15 | AC | 180000 | 188ms | 7984KB |
| 16 | AC | 180000 | 193ms | 7216KB |
| 17 | AC | 140000 | 148ms | 7632KB |
| 18 | AC | 170000 | 180ms | 8288KB |
| 19 | AC | 190000 | 195ms | 8080KB |
| 20 | AC | 120000 | 129ms | 7504KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 21 | AC | 150000 | 160ms | 8704KB |
| 22 | AC | 140000 | 151ms | 8400KB |
| 23 | AC | 80000 | 89ms | 7920KB |
| 24 | AC | 120000 | 133ms | 7968KB |
| 25 | AC | 140000 | 153ms | 8384KB |
| 26 | AC | 150000 | 155ms | 8416KB |
| 27 | AC | 180000 | 188ms | 7248KB |
| 28 | AC | 130000 | 136ms | 8384KB |
| 29 | AC | 100000 | 110ms | 8304KB |
| 30 | AC | 180000 | 192ms | 8432KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 31 | AC | 80000 | 84ms | 8400KB |
| 32 | AC | 180000 | 182ms | 8144KB |
| 33 | AC | 140000 | 151ms | 8560KB |
| 34 | AC | 90000 | 100ms | 8016KB |
| 35 | AC | 100000 | 112ms | 7872KB |
| 36 | AC | 160000 | 163ms | 8400KB |
| 37 | AC | 150000 | 161ms | 8400KB |
| 38 | AC | 150000 | 155ms | 7984KB |
| 39 | AC | 130000 | 136ms | 8064KB |
| 40 | AC | 180000 | 186ms | 7984KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 41 | AC | 180000 | 188ms | 8416KB |
| 42 | AC | 90000 | 98ms | 8432KB |
| 43 | AC | 130000 | 135ms | 7520KB |
| 44 | AC | 110000 | 117ms | 8432KB |
| 45 | AC | 110000 | 120ms | 8400KB |
| 46 | AC | 70000 | 81ms | 7760KB |
| 47 | AC | 130000 | 139ms | 8352KB |
| 48 | AC | 110000 | 118ms | 8400KB |
| 49 | AC | 100000 | 104ms | 7840KB |
| 50 | AC | 60000 | 65ms | 8192KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 51 | AC | 50000 | 58ms | 8400KB |
| 52 | AC | 140000 | 146ms | 8256KB |
| 53 | AC | 150000 | 159ms | 8384KB |
| 54 | AC | 100000 | 113ms | 7600KB |
| 55 | AC | 120000 | 121ms | 8288KB |
| 56 | AC | 130000 | 139ms | 7984KB |
| 57 | AC | 110000 | 117ms | 8016KB |
| 58 | AC | 100000 | 105ms | 8416KB |
| 59 | AC | 70000 | 81ms | 8336KB |
| 60 | AC | 140000 | 149ms | 8688KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 61 | AC | 90000 | 95ms | 8416KB |
| 62 | AC | 110000 | 119ms | 8720KB |
| 63 | AC | 170000 | 175ms | 8176KB |
| 64 | AC | 90000 | 95ms | 8224KB |
| 65 | AC | 80000 | 92ms | 7776KB |
| 66 | AC | 90000 | 95ms | 8384KB |
| 67 | AC | 100000 | 101ms | 8480KB |
| 68 | AC | 60000 | 72ms | 8416KB |
| 69 | AC | 60000 | 68ms | 8416KB |
| 70 | AC | 140000 | 152ms | 7984KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 71 | AC | 30000 | 41ms | 7520KB |
| 72 | AC | 160000 | 165ms | 7552KB |
| 73 | AC | 170000 | 177ms | 8000KB |
| 74 | AC | 120000 | 128ms | 8176KB |
| 75 | AC | 50000 | 61ms | 7504KB |
| 76 | AC | 40000 | 52ms | 8720KB |
| 77 | AC | 100000 | 102ms | 8448KB |
| 78 | AC | 80000 | 81ms | 8672KB |
| 79 | AC | 90000 | 95ms | 7632KB |
| 80 | AC | 130000 | 134ms | 8592KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 81 | AC | 90000 | 95ms | 8688KB |
| 82 | AC | 90000 | 94ms | 8432KB |
| 83 | AC | 100000 | 113ms | 7936KB |
| 84 | AC | 90000 | 94ms | 8384KB |
| 85 | AC | 120000 | 125ms | 7536KB |
| 86 | AC | 70000 | 80ms | 8640KB |
| 87 | AC | 100000 | 102ms | 8400KB |
| 88 | AC | 110000 | 116ms | 7968KB |
| 89 | AC | 50000 | 61ms | 8720KB |
| 90 | AC | 110000 | 121ms | 7504KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 91 | AC | 100000 | 107ms | 8400KB |
| 92 | AC | 100000 | 103ms | 8176KB |
| 93 | AC | 130000 | 136ms | 8416KB |
| 94 | AC | 80000 | 86ms | 8016KB |
| 95 | AC | 60000 | 69ms | 8720KB |
| 96 | AC | 180000 | 187ms | 8064KB |
| 97 | AC | 110000 | 115ms | 8432KB |
| 98 | AC | 40000 | 43ms | 7248KB |
| 99 | AC | 150000 | 154ms | 7824KB |
| 100 | AC | 110000 | 115ms | 8176KB |
#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 <cstdlib>
using namespace std;
int block[23][23];
int left(int, int, int);
int right(int, int, int);
int down(int, int, int);
int up(int, int, int);
int count(int move, int x, int y){
int cnt = 0;
if(!block[11 + x + 1][11 + y ]) cnt += right(move - 1, x + 1, y );
if(!block[11 + x ][11 + y + 1]) cnt += up (move - 1, x , y + 1);
if(!block[11 + x - 1][11 + y ]) cnt += left (move - 1, x - 1, y );
if(!block[11 + x ][11 + y - 1]) cnt += down (move - 1, x , y - 1);
return cnt;
}
int left(int move, int x, int y){
if(!x && !y) return move ? 0 : 1;
int cnt = 0;
block[11 + x][11 + y] = 1;
if(!block[11 + x ][11 + y + 1] && abs(x ) + abs(y + 1) < move) cnt += up (move - 1, x , y + 1);
if(!block[11 + x - 1][11 + y ] && abs(x - 1) + abs(y ) < move) cnt += left (move - 1, x - 1, y );
if(!block[11 + x ][11 + y - 1] && abs(x ) + abs(y - 1) < move) cnt += down (move - 1, x , y - 1);
block[11 + x][11 + y] = 0;
return cnt;
}
int right(int move, int x, int y){
if(!x && !y) return move ? 0 : 1;
int cnt = 0;
block[11 + x][11 + y] = 1;
if(!block[11 + x + 1][11 + y ] && abs(x + 1) + abs(y ) < move) cnt += right(move - 1, x + 1, y );
if(!block[11 + x ][11 + y + 1] && abs(x ) + abs(y + 1) < move) cnt += up (move - 1, x , y + 1);
if(!block[11 + x ][11 + y - 1] && abs(x ) + abs(y - 1) < move) cnt += down (move - 1, x , y - 1);
block[11 + x][11 + y] = 0;
return cnt;
}
int down(int move, int x, int y){
if(!x && !y) return move ? 0 : 1;
int cnt = 0;
block[11 + x][11 + y] = 1;
if(!block[11 + x + 1][11 + y ] && abs(x + 1) + abs(y ) < move) cnt += right(move - 1, x + 1, y );
if(!block[11 + x - 1][11 + y ] && abs(x - 1) + abs(y ) < move) cnt += left (move - 1, x - 1, y );
if(!block[11 + x ][11 + y - 1] && abs(x ) + abs(y - 1) < move) cnt += down (move - 1, x , y - 1);
block[11 + x][11 + y] = 0;
return cnt;
}
int up(int move, int x, int y){
if(!x && !y) return move ? 0 : 1;
int cnt = 0;
block[11 + x][11 + y] = 1;
if(!block[11 + x + 1][11 + y ] && abs(x + 1) + abs(y ) < move) cnt += right(move - 1, x + 1, y );
if(!block[11 + x ][11 + y + 1] && abs(x ) + abs(y + 1) < move) cnt += up (move - 1, x , y + 1);
if(!block[11 + x - 1][11 + y ] && abs(x - 1) + abs(y ) < move) cnt += left (move - 1, x - 1, y );
block[11 + x][11 + y] = 0;
return cnt;
}
int main(){
scInput();
for(int i = 0;i < scM;i++) if(abs(scB[0][i]) + abs(scB[1][i]) <= 11) block[11 + scB[0][i]][11 + scB[1][i]] = 1;
scOutput(count(scN, 0, 0));
return 0;
}