记录编号 |
355206 |
评测结果 |
AAAAATTTTTT |
题目名称 |
排序测试 |
最终得分 |
45 |
用户昵称 |
Ezoi_XY |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
6.626 s |
提交时间 |
2016-11-23 21:30:21 |
内存使用 |
25.29 MiB |
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;
int a[2000011];
char b[24111111], *bp(b), u[15], *up;
void qs(int l, int r) {
if (l > r) return;
int i(l), j(r), t, m(a[rand() % (r - l + 1) + l]);
while (i <= j) {
while (a[i] < m) ++i;
while (a[j] > m) --j;
if (i <= j) {
t = a[i]; a[i] = a[j]; a[j] = t;
++i; --j;
}
}
qs(l, j); qs(i, r);
}
int main() {
int n(0), i;
srand(time(NULL));
freopen("sorttest.in", "r", stdin);
freopen("sorttest.out", "w", stdout);
fread(b, 1, 24111111, stdin);
while (*bp < '0' || *bp > '9') ++bp;
while (*bp >= '0' && *bp <= '9') n = n * 10 + *bp++ - '0';
for (i = 0; i < n; ++i) {
while (*bp < '0' || *bp > '9') ++bp;
while (*bp >= '0' && *bp <= '9') a[i] = a[i] * 10 + *bp++ - '0';
}
qs(0, n - 1);
bp = b;
for (i = 0; i < n; ++i) {
for (up = u; a[i]; a[i] /= 10) *up++ = a[i] % 10 + '0';
if (up == u) *bp++ = '0';
else while (up-- != u) *bp++ = *up;
*bp++ = ' ';
}
fwrite(b, 1, bp - b, stdout);
return 0;
}