#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC optimize("3")
#include<bits/stdc++.h>
#define LL long long
#define LLL __int128
#define uint unsigned
#define ldb long double
using namespace std;
typedef pair<int,int> PII;
const int N=1<<27;
uint c0[256],c1[256],c2[256],c3[256],*c[256],b[N];
void sort(uint *a,int n){
uint i,*p;
#define cal(a,b,ci,d) \
p=b;for(i=0;i<256;++i)c[i]=p,p+=ci[i];\
for(p=a,i=0;i<n;i+=8)\
*(c[(*p)d]++)=(*p),++p,\
*(c[(*p)d]++)=(*p),++p,\
*(c[(*p)d]++)=(*p),++p,\
*(c[(*p)d]++)=(*p),++p,\
*(c[(*p)d]++)=(*p),++p,\
*(c[(*p)d]++)=(*p),++p,\
*(c[(*p)d]++)=(*p),++p,\
*(c[(*p)d]++)=(*p),++p;\
for(;i<n;++i)\
*(c[(*p)d]++)=(*p),++p;
for(p=a,i=0;i<n;i+=8)
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p,\
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p,\
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p,\
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p,\
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p,\
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p,\
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p,\
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p;
for(;i<n;++i)
++c0[(*p)&255],++c1[(*p)>>8&255],++c2[(*p)>>16&255],++c3[(*p)>>24],++p;
cal(a,b,c0,&255);
cal(b,a,c1,>>8&255);
cal(a,b,c2,>>16&255);
cal(b,a,c3,>>24);
}
Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
Testcase #1 | 35.363 s | 1024 MB + 36 KB | Accepted | Score: 100 | 显示更多 |