結果
問題 | No.1508 Avoid being hit |
ユーザー |
![]() |
提出日時 | 2021-05-17 17:46:15 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 4 ms / 3,000 ms |
コード長 | 1,426 bytes |
コンパイル時間 | 877 ms |
コンパイル使用メモリ | 31,616 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-06 20:06:23 |
合計ジャッジ時間 | 2,962 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
コンパイルメッセージ
main.c:15:1: warning: return type defaults to 'int' [-Wimplicit-int] 15 | main(){ | ^~~~ main.c: In function 'main': main.c:72:33: warning: implicit declaration of function 'write' [-Wimplicit-function-declaration] 72 | write(1,"NO",2); | ^~~~~ main.c:73:33: warning: implicit declaration of function '_exit'; did you mean '_Exit'? [-Wimplicit-function-declaration] 73 | _exit(0); | ^~~~~ | _Exit
ソースコード
#pragma GCC optimize("Ofast")#pragma GCC target("avx2")char*mmap();#define rd_skip() while(*rp++>=48)#define rd(v) int v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;}char wbuf[1<<28];#define rep(v,e) for(int v=0;v<e;++v)#define rrep(v,e) for(int v=e;v--;)int s[400004];main(){char*rp=mmap(0l,1l<<28,1,2,0,0ll);rd(n);rd(q);{int*sp=s+4;rep(i,q){rd(a);*sp=a;sp+=4;}}{int*sp=s+5;rep(i,q){rd(b);*sp=b;sp+=4;}}{int*sp=s;int lb=1,rb=n;*sp++=0;*sp++=0;*sp++=lb;*sp++=rb;rep(i,q){int a=*sp++;int b=*sp++;if(a>b){int t=a;a=b;b=t;}if(lb==1&&a==1&&b==2){lb=3;}else if(lb-1!=a){if(lb-1!=b&&lb>1){--lb;}}else{if(lb==b){++lb;}}if(rb==n&&a==n-1&&b==n){rb=n-2;}else if(rb+1!=b){if(rb+1!=a&&rb<n){++rb;}}else{if(rb==a){--rb;}}if(lb>rb){write(1,"NO",2);_exit(0);}*sp++=lb;*sp++=rb;}char*wp=wbuf+sizeof wbuf;int c=0;rrep(i,q+1){int rb=*--sp;int lb=*--sp;int b=*--sp;int a=*--sp;if(c<lb){c=lb;}if(c>rb){c=rb;}if(c==a|c==b){c=c==1|a==c-1|b==c-1?c+1:c-1;}*--wp=10;int v=c;do{*--wp=v%10+48;}while(v/=10);}*--wp=10;*--wp='S';*--wp='E';*--wp='Y';write(1,wp,wbuf+sizeof wbuf-wp);_exit(0);}}