結果
問題 | No.2675 KUMA |
ユーザー |
![]() |
提出日時 | 2024-03-18 17:11:52 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 9 ms / 2,000 ms |
コード長 | 1,442 bytes |
コンパイル時間 | 497 ms |
コンパイル使用メモリ | 27,264 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-09-30 04:59:15 |
合計ジャッジ時間 | 1,768 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 47 |
コンパイルメッセージ
main.c: In function ‘f3’: main.c:77:17: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] 77 | write(1,"-1",2); | ^~~~~ main.c: In function ‘main’: main.c:97:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration] 97 | _exit(0); | ^~~~~ main.c:97:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast")#pragma GCC target("avx2")#define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);})#define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;})#define rep(v,e) for(typeof(e) v=0;v<e;++v)#define rept(v,e,t) for(typeof(e) v=0;v<e;v+=t)static const int d[]={1,-1,-2,-2,-1,+1,+2,+2,+1,-1};char a[1<<16];char b[1<<16];int ps[1009][1009];int kv[1005][1005];int kxs[128],kys[128];void f0(){rep(i,1<<16){b[i]=-1;}b[0]=0;}void f1(int*pn,int*pkn){rd_init();int n=rd();int kn=0;rep(i,n){int x=rd();int y=rd();ps[y+4][x+4]=1<<i;rep(j,8){int kx=x-d[j+0];int ky=y-d[j+2];if(!kv[ky+2][kx+2]){kv[ky+2][kx+2]=1;kxs[kn]=kx;kys[kn]=ky;++kn;}}}*pn=n;*pkn=kn;}void f2(int n,int kn){rep(ki,kn){int kx=kxs[ki];int ky=kys[ki];if(!ps[ky+4][kx+4]){rep(i,1<<16){a[i]=b[i];}rept(j,8,2){int p=0;rep(c,2){p|=ps[ky+d[j+c+2]+4][kx+d[j+c]+4];}if(p){rep(i,1<<n){if(a[i]>=0){if(b[i|p]<0||b[i|p]>a[i]+1){b[i|p]=a[i]+1;}}}}}}}}void f3(int n){int z=b[(1<<n)-1];if(z<0){write(1,"-1",2);}else{char buf[2];if(z<10){buf[0]=z+48;write(1,buf,1);}else{buf[0]=z/10+48;buf[1]=z%10+48;write(1,buf,2);}}}int main(){f0();int n,kn;f1(&n,&kn);f2(n,kn);f3(n);_exit(0);}