結果
問題 | No.2197 Same Dish |
ユーザー |
![]() |
提出日時 | 2023-02-28 17:49:49 |
言語 | C90 (gcc 12.3.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,140 bytes |
コンパイル時間 | 397 ms |
コンパイル使用メモリ | 28,032 KB |
最終ジャッジ日時 | 2025-03-17 15:36:27 |
合計ジャッジ時間 | 1,679 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.c: In function 'sort_aux': main.c:13:9: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 13 | for(int i=0;i<256;++i){ | ^~~ main.c:13:9: note: use option '-std=c99', '-std=gnu99', '-std=c11' or '-std=gnu11' to compile your code main.c:16:17: error: redefinition of 'i' 16 | for(int i=0;i<n;++i){ | ^ main.c:13:17: note: previous definition of 'i' with type 'int' 13 | for(int i=0;i<256;++i){ | ^ main.c:16:9: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 16 | for(int i=0;i<n;++i){ | ^~~ main.c:20:17: error: redefinition of 'i' 20 | for(int i=0;i<256;++i){ | ^ main.c:16:17: note: previous definition of 'i' with type 'int' 16 | for(int i=0;i<n;++i){ | ^ main.c:20:9: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 20 | for(int i=0;i<256;++i){ | ^~~ main.c:25:17: error: redefinition of 'i' 25 | for(int i=0;i<n;++i){ | ^ main.c:20:17: note: previous definition of 'i' with type 'int' 20 | for(int i=0;i<256;++i){ | ^ main.c:25:9: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 25 | for(int i=0;i<n;++i){ | ^~~ main.c: In function 'main': main.c:8:18: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 8 | #define rep(v,e) for(int v=0;v<e;++v) | ^~~ main.c:47:17: note: in expansion of macro 'rep' 47 | rep(i,n){ | ^~~ main.c:8:18: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 8 | #define rep(v,e) for(int v=0;v<e;++v) | ^~~ main.c:54:17: note: in expansion of macro 'rep' 54 | rep(i,n){ | ^~~
ソースコード
#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define getrp() ({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);}) #define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define wt(v) ({unsigned _z=v;do*--wp=_z%10+48;while(_z/=10);}) #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) #define rep(v,e) for(int v=0;v<e;++v) #define MD 998244353 void sort_aux(unsigned*a,unsigned*b,int n){ int c[256]; for(int i=0;i<256;++i){ c[i]=0; } for(int i=0;i<n;++i){ ++c[a[i]&255]; } int t=0; for(int i=0;i<256;++i){ int u=c[i]; c[i]=t; t+=u; } for(int i=0;i<n;++i){ b[c[a[i]&255]++]=a[i]>>8|a[i]<<24; } } void sort(unsigned*a,int n){ unsigned*b=a+n; sort_aux(a,b,n); sort_aux(b,a,n); sort_aux(a,b,n); sort_aux(b,a,n); } unsigned a[200000*2]; int main(){ int n; unsigned k; { char*rp=getrp(); n=rd()*2; k=rd(); rep(i,n){ a[i]=rd()<<1|!(i&1); } } sort(a,n); { unsigned b=0,y=1,z=0; rep(i,n){ unsigned x=a[i]; if(x&1){ z=(1ull*z*k+1ull*y*b)%MD; y=y*1ull*(k-b)%MD; ++b; }else{ --b; } } wt1(z); } _exit(0); }