比赛 |
CSP2023-J模拟赛 |
评测结果 |
AAAAAAAAAATTTTTTTTTT |
题目名称 |
排列变换 |
最终得分 |
50 |
用户昵称 |
喵喵喵 |
运行时间 |
10.164 s |
代码语言 |
C++ |
内存使用 |
8.59 MiB |
提交时间 |
2023-10-18 20:05:06 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int p[1000005];
int Max = 0;
void turn(int n)
{
int t = p[n-1];
for(int i = n-2;i >= 0;i--)
{
p[i+1] = p[i];
}
p[0] = t;
return;
}
int f(int n)
{
int cnt = 0;
for(int i = 0;i < n;i++)
{
if(p[i] >= i+1)
{
cnt++;
}
}
return cnt;
}
int main()
{
int max_cnt;
freopen("permutrans.in","r",stdin);
freopen("permutrans.out","w",stdout);
int n;
scanf("%d",&n);
for(int i = 0;i < n;i++)
{
scanf("%d",&p[i]);
}
Max = f(n);
max_cnt = 0;
for(int i = 1;i < n;i++)
{
turn(n);
int num = f(n);
if(num > Max)
{
Max = num;
max_cnt = i;
}
}
printf("%d %d\n",Max,max_cnt);
return 0;
}