結果
問題 | No.2248 max(C)-min(C) |
ユーザー |
![]() |
提出日時 | 2023-03-18 02:21:32 |
言語 | C90 (gcc 12.3.0) |
結果 |
AC
|
実行時間 | 15 ms / 3,000 ms |
コード長 | 1,527 bytes |
コンパイル時間 | 1,175 ms |
コンパイル使用メモリ | 27,136 KB |
実行使用メモリ | 11,224 KB |
最終ジャッジ日時 | 2024-09-18 12:59:37 |
合計ジャッジ時間 | 3,991 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 51 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:7:59: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] 7 | #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) | ^~~~~ main.c:84:33: note: in expansion of macro ‘wt1’ 84 | wt1(z); | ^~~ main.c:85:33: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration] 85 | _exit(0); | ^~~~~ main.c:85:33: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast")#pragma GCC target("avx2")#define rd_init() char*rp=({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(typeof(e) v=0;v<e;++v)#define chmin(v,a) (v=v<=a?v:a)#define chmax(v,a) (v=v>=a?v:a)typedef unsigned long ulong;void sort_aux(ulong*a,ulong*b,int n,int p){int c[1024];for(int i=0;i<1024;++i){c[i]=0;}for(int i=0;i<n;++i){++c[a[i]&1023];}int t=0;for(int i=0;i<1024;++i){int u=c[i];c[i]=t;t+=u;}if(p==0){for(int i=0;i<n;++i){b[c[a[i]&1023]++]=a[i]>>10|a[i]<<54;}}if(p==1){for(int i=0;i<n;++i){b[c[a[i]&1023]++]=a[i]>>44|a[i]<<20;}}}void sort(ulong*a,int n){ulong*b=a+n;sort_aux(a,b,n,0);sort_aux(b,a,n,0);sort_aux(a,b,n,1);}ulong a[400001*2];int main(){int n;unsigned l,m;{rd_init();n=rd();rep(i,n){a[i*2]=rd();}l=1<<30;m=0;rep(i,n){unsigned x=a[i*2];unsigned y=rd();if(x>y){unsigned t=x;x=y;y=t;}unsigned z=x+y>>1;a[i*2+0]=(ulong)z<<32|x;a[i*2+1]=(ulong)y<<32|z;chmin(l,y);chmax(m,x);}}a[n*2]=l;sort(a,n*2+1);{unsigned z=m;for(int i=n*2+1;;++i){unsigned x=a[i];unsigned y=a[i]>>32;chmin(z,m-x);if(x>=l){wt1(z);_exit(0);}chmax(m,y);}}}