记录编号 |
267683 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[HZOI 2016]阳光之春 |
最终得分 |
100 |
用户昵称 |
洛克索耶夫 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.325 s |
提交时间 |
2016-06-11 16:45:38 |
内存使用 |
0.89 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int Read()
{
int a = 0, minus = 1;
char ch = getchar();
if(ch == '-') minus = -1;
while(ch < '0' || ch > '9'){
ch = getchar();
if(ch == '-') minus = -1;
}
while(ch >= '0' && ch <= '9'){
a = a * 10 + ch - '0';
ch = getchar();
}
return a * minus;
}
struct NUM{
int num, id;
NUM()
{
num = id = 0;
}
}a[50010];
int b[50010];
int n, cnt = 0;
inline int cmp(const NUM& a, const NUM& b)
{
return a.num < b.num;
}
//void Update(int b[], int i)//??
//{
// int tmp[50010];
// for(int j = i; j <= n; j++) tmp[j] = b[j];
// sort(tmp + i, tmp + 1 + n);
// for(int j = i; j <= n; j++) b[j] = tmp[j];
//}
//void Work(int b[])
//{
// if(cnt == 10) return;
// cnt++;
// int tmp = 0;
// for(int i = n - 1; i >= 1; i--){//变动的长度的起点
// for(int j = n; j > i; j--){
// if(b[i] < b[j]){
// //b[i] = b[i]^b[j]; b[j] = b[i]^b[j]; b[i] = b[i]^b[j];
// tmp = b[i]; b[i] = b[j]; b[j] = tmp; tmp = 0;
// Update(b, i + 1);
//// for(int k = n; k > j; k--){
//// if(b[k] < b[j])
//// //b[k] = b[k]^b[j]; b[j] = b[k]^b[j]; b[k] = b[k]^b[j];
//// tmp = b[k]; b[k] = b[j]; b[j] = tmp; tmp = 0;
//// }
// printf("total %d:", cnt);
// for(int i = 1; i <= n; i++) printf(" %d",b[i]);
// puts("");puts("");
// if(cnt == 10) return;
// Work(b);
// }
// }
// }
//}
int main()
{
freopen("hzoi_spring.in", "r", stdin);
freopen("hzoi_spring.out", "w", stdout);
n = Read();
for(int i = 1; i <= n; i++){
a[i].num = Read();
a[i].id = i;
}
sort(a+1, a+1+n, cmp);
for(int i = 1; i <= n; i++) b[a[i].id] = i;
// for(int i = 1; i <= n; i++) printf("%d ", b[i]);
// puts("");
//Work(b);
for(int i = 1; i <= 10; i++){
if(!next_permutation(b + 1 , b + 1 + n)) break;//自带库函数,用的时候类似sort
printf("total %d:", i);
for(int j = 1; j <= n; j++) printf(" %d",b[j]);
if(i < 10)puts(""),puts("");
else puts("");
}
fclose(stdin);
fclose(stdout);
return 0;
}
/*
5
120 205 529 206 671
*/