結果
問題 | No.2308 [Cherry 5th Tune B] もしかして、真? |
ユーザー |
![]() |
提出日時 | 2023-05-24 17:29:24 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 78 ms / 2,000 ms |
コード長 | 1,475 bytes |
コンパイル時間 | 1,641 ms |
コンパイル使用メモリ | 27,332 KB |
実行使用メモリ | 5,504 KB |
最終ジャッジ日時 | 2024-12-23 18:30:39 |
合計ジャッジ時間 | 7,509 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 39 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:91:9: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] 91 | write(1,wbuf,wp-wbuf); | ^~~~~ main.c:92:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration] 92 | _exit(0); | ^~~~~ main.c:92: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_skip() while(*rp++>=48)#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)typedef unsigned long ulong;#define FWSIZE (1<<18)int fw[FWSIZE];int fwsize;int fwlim;static inlinevoid fw_add(int a,int v){if(a==0){fw[0]+=v;}else{while(fw[a]+=v,a+=a&-a,a<fwsize);}}void fw_build(){for(int a=1;a<fwlim-1;++a){fw[a+(a&-a)]+=fw[a];}}static inlineint fw_kth(int k){k-=fw[0];if(k<0)return 0;int a=0;for(int m=fwlim;m>>=1;){if(fw[a+m]<=k){k-=fw[a+m];a+=m;}}return a+1;}char wbuf[1<<25];char x[1<<18],y[1<<18];int main(){rd_init();rd_skip();char*wp=wbuf;while(*rp){int n=rd();fwsize=n;for(fwlim=1;fwlim<n;fwlim<<=1);rep(i,n)fw[i]=1;fw_build();rep(i,n){int c=*rp;if(c=='T'){rp+=5;x[i]=1;}else{rp+=6;x[i]=0;}}rep(i,n-1){int c=*rp;y[i+1]=c;rp+=c=='o'?3:4;}rep(i,n-1){int s=rd();int a=fw_kth(s-1);int b=fw_kth(s);fw_add(b,-1);if(y[b]=='a') x[a]&=x[b];if(y[b]=='o') x[a]|=x[b];if(y[b]=='x') x[a]^=x[b];if(y[b]=='i') x[a]=!x[a]|x[b];}if(x[0]){*(ulong*)wp=0x0a65757254l; // "True\n"wp+=5;}else{*(ulong*)wp=0x0a65736c6146l; // "False\n"wp+=6;}}write(1,wbuf,wp-wbuf);_exit(0);}