結果
問題 | No.2080 Simple Nim Query |
ユーザー |
![]() |
提出日時 | 2022-09-27 23:09:04 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 9 ms / 3,000 ms |
コード長 | 1,484 bytes |
コンパイル時間 | 126 ms |
コンパイル使用メモリ | 24,960 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-12 07:28:05 |
合計ジャッジ時間 | 1,258 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 8 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:84:9: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] 84 | write(1,wbuf,wp-wbuf); | ^~~~~ main.c:85:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration] 85 | _exit(0); | ^~~~~ main.c:85:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast")#pragma GCC target("avx2")#define rd_skip() while(*rp++>=48)#define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;})#define rep(v,e) for(long v=0;v<e;++v)typedef unsigned long ulong;ulong b2;ulong b1[64];ulong b0[64*64];char wbuf[1<<25];int main(){char*wp=wbuf;char*mmap();char*rp=mmap(0l,1l<<25,1,2,0,0ll);long n=rd();rd_skip();rep(x,n){ulong y=rd();if(y!=1){b0[x>>6]|=1ul<<x;b1[x>>12]|=1ul<<(x>>6);b2|=1ul<<(x>>12);}}while(*rp){ulong t=*rp; rp+=2;ulong x=rd();ulong y=rd();if(t&1){--x;if(y!=1){b0[x>>6]|=1ul<<x;b1[x>>12]|=1ul<<(x>>6);b2|=1ul<<(x>>12);}else{if(!(b0[x>>6]&=~(1ul<<x))){if(!(b1[x>>12]&=~(1ul<<(x>>6)))){b2&=~(1ul<<(x>>12));}}}}else{--x;ulong z=x;{ulong a=b0[y>>6]&(1ul<<y)-1;if(a){ulong i=63-__builtin_clzl(a)|y>>6<<6;z=i;goto hogera;}}{ulong a=b1[y>>12]&(1ul<<(y>>6))-1;if(a){ulong j=63-__builtin_clzl(a)|y>>12<<6;ulong i=63-__builtin_clzl(b0[j])|j<<6;z=i;goto hogera;}}{ulong a=b2&(1ul<<(y>>12))-1;if(a){ulong k=63-__builtin_clzl(a);ulong j=63-__builtin_clzl(b1[k])|k<<6;ulong i=63-__builtin_clzl(b0[j])|j<<6;z=i;goto hogera;}}hogera:;if(z<x){z=x;}*wp++=y-z&1?'F':'S';*wp++='\n';}}write(1,wbuf,wp-wbuf);_exit(0);}