結果

問題 No.2080 Simple Nim Query
ユーザー tails
提出日時 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]

ソースコード

diff #
プレゼンテーションモードにする

#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);
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0