其他分享
首页 > 其他分享> > 3.22 每日一题题解

3.22 每日一题题解

作者:互联网

Farewell Party

题目链接:https://codeforces.com/problemset/problem/1081/B

涉及知识点:

solution:

std:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 1e5 + 5;
int a[maxn],ans[maxn];
vector<int> v[maxn];
int main()
{
    int n,x;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x , x = n - x;
        v[x].push_back(i);
    }
    int cnt = 1;
    for(int i=1;i<=n;i++){
        int siz = v[i].size();
        if(siz%i != 0){
            cout<<"Impossible"<<endl;
            return 0;
        }
        for(int j=0;j<siz;j++){
            ans[v[i][j]] = cnt;
            if((j+1)%i == 0)
                cnt++;
        }
    }
    cout<<"Possible"<<endl;
    for(int i=1;i<=n;i++)
        cout<<ans[i]<<" ";
    return 0;
}

标签:颜色,相同,int,题解,每日,个数,3.22,maxn,人数
来源: https://www.cnblogs.com/QFNU-ACM/p/12544203.html