Submission #25494
Source Code Expand
#include<queue> #include<cstdio> #include"maze.h" #include"grader.h" #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; const int INF=1<<29; const int dx[]={1,0,-1,0},dy[]={0,-1,0,1}; struct point{ int x,y; point(){} point(int x,int y):x(x),y(y){} }; void find_pos(int W,int H,int &x0,int &y0){ int k; for(k=0;k<4;k++) if(query(dx[k],dy[k])==0) break; int left=0; { int lo=0,hi=W/2; while(lo<hi){ int mi=(lo+hi+1)/2; if(query(-2*mi,0)==0) lo=mi; else hi=mi-1; } left=min(left,-2*lo); } if(k<4){ int lo=0,hi=W/2; while(lo<hi){ int mi=(lo+hi+1)/2; if(query(-2*mi+dx[k],dy[k])==0) lo=mi; else hi=mi-1; } left=min(left,-2*lo+dx[k]); } int top=0; { int lo=0,hi=H/2; while(lo<hi){ int mi=(lo+hi+1)/2; if(query(0,-2*mi)==0) lo=mi; else hi=mi-1; } top=min(top,-2*lo); } if(k<4){ int lo=0,hi=H/2; while(lo<hi){ int mi=(lo+hi+1)/2; if(query(dx[k],-2*mi+dy[k])==0) lo=mi; else hi=mi-1; } top=min(top,-2*lo+dy[k]); } x0=1-left; y0=1-top; } void taro(int W,int H,int M[1000][1000]){ int tx,ty; find_pos(W,H,tx,ty); rep(y,H) rep(x,W) if(x%2^y%2) send(M[y][x]); rep(i,10) send(!!(tx&1<<i)); rep(i,10) send(!!(ty&1<<i)); } int jiro(int W,int H,int n_sig,int sig[]){ int i_sig=0; static int M[1000][1000]; rep(y,H) rep(x,W) { if(x%2^y%2) M[y][x]=sig[i_sig++]; else M[y][x]=(x%2&&y%2?0:1); } int tx=0,ty=0; // taro のいる座標 rep(i,10) tx|=sig[i_sig++]<<i; rep(i,10) ty|=sig[i_sig++]<<i; int jx,jy; // jiro のいる座標 find_pos(W,H,jx,jy); // BFS static int d[1000][1000]; rep(y,H) rep(x,W) d[y][x]=INF; d[jy][jx]=0; queue<point> Q; Q.push(point(jx,jy)); while(!Q.empty()){ int x=Q.front().x,y=Q.front().y; Q.pop(); rep(k,4){ int xx=x+dx[k],yy=y+dy[k]; if(M[yy][xx]==0 && d[yy][xx]==INF){ d[yy][xx]=d[y][x]+1; Q.push(point(xx,yy)); } } } return d[ty][tx]; }
Submission Info
Submission Time | |
---|---|
Task | B - にひきのきつね と くらがりのめいろ (Two Foxes and the Dark Maze) |
User | fura2 |
Language | IOI-Style C++ (GCC 5.4.1) |
Score | 100 |
Code Size | 2011 Byte |
Status | AC |
Exec Time | 364 ms |
Memory | 19420 KB |
Judge Result
Set Name | Subtask1 | Subtask2 | Subtask3 | Subtask4 | Subtask5 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 13 / 13 | 11 / 11 | 21 / 21 | 21 / 21 | 34 / 34 | ||||||||||
Status |
|
|
|
|
|
Set Name | Test Cases |
---|---|
Subtask1 | subtask/1, subtask/10, subtask/11, subtask/12, subtask/13, subtask/14, subtask/15, subtask/16, subtask/17, subtask/18, subtask/19, subtask/2, subtask/20, subtask/21, subtask/22, subtask/23, subtask/24, subtask/25, subtask/26, subtask/27, subtask/28, subtask/29, subtask/3, subtask/30, subtask/31, subtask/32, subtask/33, subtask/34, subtask/35, subtask/36, subtask/37, subtask/38, subtask/39, subtask/4, subtask/40, subtask/41, subtask/42, subtask/43, subtask/44, subtask/45, subtask/46, subtask/47, subtask/48, subtask/49, subtask/5, subtask/50, subtask/51, subtask/52, subtask/53, subtask/54, subtask/55, subtask/56, subtask/6, subtask/7, subtask/8, subtask/9 |
Subtask2 | subtask/1, subtask/10, subtask/11, subtask/12, subtask/13, subtask/14, subtask/15, subtask/16, subtask/17, subtask/18, subtask/19, subtask/2, subtask/20, subtask/21, subtask/22, subtask/23, subtask/24, subtask/25, subtask/26, subtask/27, subtask/28, subtask/29, subtask/3, subtask/30, subtask/31, subtask/32, subtask/33, subtask/34, subtask/35, subtask/36, subtask/37, subtask/38, subtask/39, subtask/4, subtask/40, subtask/41, subtask/42, subtask/43, subtask/44, subtask/45, subtask/46, subtask/47, subtask/48, subtask/49, subtask/5, subtask/50, subtask/51, subtask/52, subtask/53, subtask/54, subtask/55, subtask/56, subtask/6, subtask/7, subtask/8, subtask/9 |
Subtask3 | subtask/1, subtask/10, subtask/11, subtask/12, subtask/13, subtask/14, subtask/15, subtask/16, subtask/17, subtask/18, subtask/19, subtask/2, subtask/20, subtask/21, subtask/22, subtask/23, subtask/24, subtask/25, subtask/26, subtask/27, subtask/28, subtask/29, subtask/3, subtask/30, subtask/31, subtask/32, subtask/33, subtask/34, subtask/35, subtask/36, subtask/37, subtask/38, subtask/39, subtask/4, subtask/40, subtask/41, subtask/42, subtask/43, subtask/44, subtask/45, subtask/46, subtask/47, subtask/48, subtask/49, subtask/5, subtask/50, subtask/51, subtask/52, subtask/53, subtask/54, subtask/55, subtask/56, subtask/6, subtask/7, subtask/8, subtask/9 |
Subtask4 | subtask/1, subtask/10, subtask/11, subtask/12, subtask/13, subtask/14, subtask/15, subtask/16, subtask/17, subtask/18, subtask/19, subtask/2, subtask/20, subtask/21, subtask/22, subtask/23, subtask/24, subtask/25, subtask/26, subtask/27, subtask/28, subtask/29, subtask/3, subtask/30, subtask/31, subtask/32, subtask/33, subtask/34, subtask/35, subtask/36, subtask/37, subtask/38, subtask/39, subtask/4, subtask/40, subtask/41, subtask/42, subtask/43, subtask/44, subtask/45, subtask/46, subtask/47, subtask/48, subtask/49, subtask/5, subtask/50, subtask/51, subtask/52, subtask/53, subtask/54, subtask/55, subtask/56, subtask/6, subtask/7, subtask/8, subtask/9 |
Subtask5 | subtask/1, subtask/10, subtask/11, subtask/12, subtask/13, subtask/14, subtask/15, subtask/16, subtask/17, subtask/18, subtask/19, subtask/2, subtask/20, subtask/21, subtask/22, subtask/23, subtask/24, subtask/25, subtask/26, subtask/27, subtask/28, subtask/29, subtask/3, subtask/30, subtask/31, subtask/32, subtask/33, subtask/34, subtask/35, subtask/36, subtask/37, subtask/38, subtask/39, subtask/4, subtask/40, subtask/41, subtask/42, subtask/43, subtask/44, subtask/45, subtask/46, subtask/47, subtask/48, subtask/49, subtask/5, subtask/50, subtask/51, subtask/52, subtask/53, subtask/54, subtask/55, subtask/56, subtask/6, subtask/7, subtask/8, subtask/9 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask/1 | AC | 311 ms | 19316 KB |
subtask/10 | AC | 327 ms | 19400 KB |
subtask/11 | AC | 304 ms | 19404 KB |
subtask/12 | AC | 326 ms | 19404 KB |
subtask/13 | AC | 335 ms | 19400 KB |
subtask/14 | AC | 333 ms | 19408 KB |
subtask/15 | AC | 325 ms | 19400 KB |
subtask/16 | AC | 347 ms | 19400 KB |
subtask/17 | AC | 332 ms | 19408 KB |
subtask/18 | AC | 337 ms | 19288 KB |
subtask/19 | AC | 329 ms | 19404 KB |
subtask/2 | AC | 318 ms | 19416 KB |
subtask/20 | AC | 340 ms | 19300 KB |
subtask/21 | AC | 74 ms | 17420 KB |
subtask/22 | AC | 43 ms | 8644 KB |
subtask/23 | AC | 78 ms | 17400 KB |
subtask/24 | AC | 42 ms | 8776 KB |
subtask/25 | AC | 349 ms | 19412 KB |
subtask/26 | AC | 61 ms | 9744 KB |
subtask/27 | AC | 253 ms | 18384 KB |
subtask/28 | AC | 301 ms | 19128 KB |
subtask/29 | AC | 235 ms | 15900 KB |
subtask/3 | AC | 330 ms | 19392 KB |
subtask/30 | AC | 183 ms | 16236 KB |
subtask/31 | AC | 186 ms | 15864 KB |
subtask/32 | AC | 79 ms | 17468 KB |
subtask/33 | AC | 82 ms | 17468 KB |
subtask/34 | AC | 50 ms | 8880 KB |
subtask/35 | AC | 51 ms | 8872 KB |
subtask/36 | AC | 53 ms | 8944 KB |
subtask/37 | AC | 50 ms | 8912 KB |
subtask/38 | AC | 40 ms | 8612 KB |
subtask/39 | AC | 41 ms | 8748 KB |
subtask/4 | AC | 341 ms | 19408 KB |
subtask/40 | AC | 41 ms | 8584 KB |
subtask/41 | AC | 40 ms | 8736 KB |
subtask/42 | AC | 304 ms | 19296 KB |
subtask/43 | AC | 325 ms | 19404 KB |
subtask/44 | AC | 335 ms | 19404 KB |
subtask/45 | AC | 339 ms | 19400 KB |
subtask/46 | AC | 326 ms | 19404 KB |
subtask/47 | AC | 340 ms | 19416 KB |
subtask/48 | AC | 354 ms | 19412 KB |
subtask/49 | AC | 355 ms | 19404 KB |
subtask/5 | AC | 330 ms | 19304 KB |
subtask/50 | AC | 350 ms | 19404 KB |
subtask/51 | AC | 351 ms | 19316 KB |
subtask/52 | AC | 319 ms | 19412 KB |
subtask/53 | AC | 331 ms | 19416 KB |
subtask/54 | AC | 347 ms | 19416 KB |
subtask/55 | AC | 338 ms | 19420 KB |
subtask/56 | AC | 327 ms | 19408 KB |
subtask/6 | AC | 337 ms | 19408 KB |
subtask/7 | AC | 302 ms | 19408 KB |
subtask/8 | AC | 326 ms | 19408 KB |
subtask/9 | AC | 364 ms | 19408 KB |