結果
問題 | No.2039 Copy and Avoid |
ユーザー |
![]() |
提出日時 | 2022-08-13 02:35:43 |
言語 | C90 (gcc 12.3.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,290 bytes |
コンパイル時間 | 1,635 ms |
コンパイル使用メモリ | 26,624 KB |
最終ジャッジ日時 | 2025-01-28 11:31:39 |
合計ジャッジ時間 | 2,221 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.c: In function 'f0': main.c:6:18: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 6 | #define rep(v,e) for(long v=0;v<e;++v) | ^~~ main.c:17:9: note: in expansion of macro 'rep' 17 | rep(i,2000){ | ^~~ main.c:6:18: note: use option '-std=c99', '-std=gnu99', '-std=c11' or '-std=gnu11' to compile your code 6 | #define rep(v,e) for(long v=0;v<e;++v) | ^~~ main.c:17:9: note: in expansion of macro 'rep' 17 | rep(i,2000){ | ^~~ main.c: In function 'f1': main.c:24:9: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 24 | for(unsigned i=1;i*i<=n;++i){ | ^~~ main.c:30:19: error: conflicting types for 'i'; have 'ulong' {aka 'long unsigned int'} 30 | for(ulong i=dn-(d[dn-1]*d[dn-1]==n);i--;){ | ^ main.c:24:22: note: previous definition of 'i' with type 'unsigned int' 24 | for(unsigned i=1;i*i<=n;++i){ | ^ main.c:30:9: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 30 | for(ulong i=dn-(d[dn-1]*d[dn-1]==n);i--;){ | ^~~ main.c: In function 'f2': main.c:6:18: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 6 | #define rep(v,e) for(long v=0;v<e;++v) | ^~~ main.c:37:9: note: in expansion of macro 'rep' 37 | rep(i,dn){ | ^~~ main.c:6:18: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 6 | #define rep(v,e) for(long v=0;v<e;++v) | ^~~ main.c:40:25: note: in expansion of macro 'rep' 40 | rep(j,m){ | ^~~ main.c:45:30: error: redefinition of 'j' 45 | rep3(j,i+1,dn){ | ^ main.c:7:30: note: in definition of macro 'rep3' 7 | #define r
ソースコード
#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define wt(v) {ulong _z=v;do*--wp=_z%10+48;while(_z/=10);} #define rep(v,e) for(long v=0;v<e;++v) #define rep3(v,s,e) for(long v=s;v<e;++v) #define chmin(v,a) (v=v<=a?v:a) typedef unsigned long ulong; unsigned c[5000]; unsigned d[2000]; long e[2000]; void f0(){ rep(i,2000){ e[i]=1l<<61; } } long f1(unsigned n){ long dn=0; for(unsigned i=1;i*i<=n;++i){ if(n%i==0){ d[dn]=i; ++dn; } } for(ulong i=dn-(d[dn-1]*d[dn-1]==n);i--;){ d[dn++]=n/d[i]; } return dn; } ulong f2(long dn,long a,long m){ rep(i,dn){ if(e[i]<1l<<61){ unsigned t=1<<30; rep(j,m){ if(c[j]<t&&c[j]%d[i]==0){ t=c[j]; } } rep3(j,i+1,dn){ if(d[j]>=t){ break; } if(d[j]%d[i]==0){ long x=e[i]-e[0]+a*(d[j]/d[i]-1); chmin(e[j],x); } } } } return e[dn-1]; } void f3(ulong z){ char wbuf[64],*wp=wbuf+sizeof wbuf; if(z==1l<<61){ *--wp='1'; *--wp='-'; }else{ wt(z); } write(1,wp,wbuf+sizeof wbuf-wp); } int main(){ f0(); long n,m,a; { char*mmap(); char*rp=mmap(0l,1l<<25,1,2,0,0ll); n=rd(); m=rd(); a=rd(); e[0]=-rd(); rep(i,m){ c[i]=rd(); } } f3(f2(f1(n),a,m)); _exit(0); }