比赛 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;
}