結果
問題 |
No.397 NO MORE KADOMATSU
|
ユーザー |
![]() |
提出日時 | 2021-02-22 18:21:00 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 29 ms / 2,000 ms |
コード長 | 774 bytes |
コンパイル時間 | 626 ms |
コンパイル使用メモリ | 31,232 KB |
実行使用メモリ | 25,220 KB |
平均クエリ数 | 39.11 |
最終ジャッジ日時 | 2024-07-17 02:57:28 |
合計ジャッジ時間 | 2,102 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
コンパイルメッセージ
main.c:26:1: warning: data definition has no type or storage class 26 | a[101],b[101]; | ^ main.c:26:1: warning: type defaults to 'int' in declaration of 'a' [-Wimplicit-int] main.c:26:8: warning: type defaults to 'int' in declaration of 'b' [-Wimplicit-int] 26 | a[101],b[101]; | ^ main.c:27:1: warning: data definition has no type or storage class 27 | r[100000],rn; | ^ main.c:27:1: warning: type defaults to 'int' in declaration of 'r' [-Wimplicit-int] main.c:27:11: warning: type defaults to 'int' in declaration of 'rn' [-Wimplicit-int] 27 | r[100000],rn; | ^~ main.c:29:1: warning: return type defaults to 'int' [-Wimplicit-int] 29 | main(){ | ^~~~ main.c: In function 'main': main.c:30:9: warning: implicit declaration of function 'read' [-Wimplicit-function-declaration] 30 | read(0,rbuf,sizeof rbuf); | ^~~~ main.c:47:9: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration] 47 | printf("%d\n",rn/2); | ^~~~~~ main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'printf' +++ |+#include <stdio.h> 1 | #pragma GCC optimize("Ofast") main.c:47:9: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch] 47 | printf("%d\n",rn/2); | ^~~~~~ main.c:47:9: note: include '<stdio.h>' or provide a declaration of 'printf'
ソースコード
#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char rbuf[1<<28]; #define RD(v) int v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} void bucket_sort(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]>>8]; } 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]>>8]++]=a[i]&255; } } a[101],b[101]; r[100000],rn; main(){ read(0,rbuf,sizeof rbuf); char*rp=rbuf; RD(n); for(int i=0;i<n;++i){ RD(ai); a[i]=ai<<8|i; } bucket_sort(a,b,n); for(int i=0;i<n;++i){ while(b[i]!=i){ int t=b[i]; b[i]=b[t]; b[t]=t; r[rn++]=i; r[rn++]=t; } } printf("%d\n",rn/2); for(int i=rn;i;){ i-=2; printf("%d %d\n",r[i],r[i+1]); } }