// TEST
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("-fdelete-null-pointer-checks")
void sort(unsigned *a, int n) {
#define N 100000000
#define D 256
#define D1 255
#define cal(w,w2,tw,op) p=w2-1;for(i=0;i<D;++i)rs[i]=p,p+=tw[i];for(i=0;i<N;i+=8){ p=w+i; *++rs[p[0]op]=p[0], *++rs[p[1]op]=p[1], *++rs[p[2]op]=p[2], *++rs[p[3]op]=p[3], *++rs[p[4]op]=p[4], *++rs[p[5]op]=p[5], *++rs[p[6]op]=p[6], *++rs[p[7]op]=p[7];}
unsigned b[N],*rs[D],t0[D],t1[D],t2[D],t3[D];
unsigned*p,i,x;
for(i=0;i<D;++i){
t0[i]=0;
t1[i]=0;
t2[i]=0;
t3[i]=0;
}
for(i=0;i<N;){
#define A x=a[i],++t0[x&D1],++t1[x>>8&D1],++t2[x>>16&D1],++t3[x>>24],++i;
A A A A
#undef A
}
cal(a,b,t0,&D1);
cal(b,a,t1,>>8&D1);
cal(a,b,t2,>>16&D1);
cal(b,a,t3,>>24);
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 802.96 ms | 762 MB + 976 KB | Accepted | Score: 100 | 显示更多 |