結果
問題 | No.10 +か×か |
ユーザー |
![]() |
提出日時 | 2024-04-24 14:38:02 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 4 ms / 5,000 ms |
コード長 | 758 bytes |
コンパイル時間 | 674 ms |
コンパイル使用メモリ | 25,216 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-06 23:02:56 |
合計ジャッジ時間 | 1,416 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 12 |
コンパイルメッセージ
main.c:12:1: warning: return type defaults to ‘int’ [-Wimplicit-int] 12 | main(){ | ^~~~ main.c: In function ‘main’: main.c:32:41: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] 32 | write(1,wbuf+1,n-1); | ^~~~~ main.c:33:41: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration] 33 | _exit(0); | ^~~~~ main.c:33:41: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast")#pragma GCC target("avx2")char*mmap();#define rd() ({int v=0,_c;while(_c=*rp++-48,_c>=0)v=v*10+_c;v;})int n,t;int a[50];long q[120];long v[100001];main(){char*rp=mmap(0l,1l<<25,1,2,0,0ll);n=rd();t=rd();for(int i=0;i<n;++i){a[i]=rd();}int qn=0;int i=1;int x=a[0];long u=0;while(1){while(x<=t){if(i==n){if(x==t){char wbuf[50];for(int i=1;i<n;++i){u>>=1;wbuf[i]=u&1|42;}write(1,wbuf+1,n-1);_exit(0);}break;}if(v[x]&1l<<i){break;}v[x]|=1l<<i;if(x*a[i]<=t){q[qn++]=x*a[i]|(long)(i+1)<<32;q[qn++]=u;}u|=1l<<i;x+=a[i];i+=1;}u=q[--qn];long xi=q[--qn];x=xi;i=xi>>32;}}