题解:P11913 [PA 2025] 晋级者 / Finaliści
P11913 [PA 2025] 晋级者 / Finaliści 题解
洛谷传送门
题目大意
总共
只有波兰公民或在波兰学习、工作或居住的选手才能进入决赛,在输入中通过 TAK 和 NIE 来区分选手是否具备参赛资格。
思路
将能进入决赛的选手编号存储在一个数组中。
从存储能进入决赛选手编号的数组中,按顺序选取前
再次遍历存储能进入决赛选手编号的数组,对于每个选手,看他的参加决赛的次数是否小于
对答案数组进行排序,然后按顺序输出即可。
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,k,c,x[10005],e[10005],ans[25];
string s[10005];
signed main() {
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin>>n;
for (int i=1;i<=n;i++)
cin>>s[i]>>x[i];
for (int i=1;i<=n;i++)
if (s[i]=="TAK") e[++k]=i;
for (int i=1;i<=k && c<10;i++)
ans[++c]=e[i];
for (int i=1;i<=k && c<20;i++) {
int idx=e[i];
if (x[idx]<2) {
bool flag=false;
for (int j=1;j<=c;j++)
if (ans[j]==idx) {
flag=true;
break;
}
if (!flag) ans[++c]=idx;
}
}
sort(ans+1,ans+21);
for (int i=1;i<=20;i++)
cout<<ans[i]<<" ";
return 0;
}