题解:AT_pakencamp_2024_day1_b Pakencamp
水题。
首先算出所有字符的个数,然后求出题目当中所给的每个字符分别需要几套,并取最大值即可。注意如果出现不是题目当中所给的字符,需要输出 \(-1\)。
#include<bits/stdc++.h>
using namespace std;
int n,ans;
string s;
map<char,int>mp;
int main(){
cin >> n >> s;
for(int i=0;i<s.size();++i){
if(s[i]!='P'&&s[i]!='A'&&s[i]!='K'&&s[i]!='E'&&s[i]!='N'&&s[i]!='C'&&s[i]!='M')return !printf("-1");
mp[s[i]]++;
}
ans=max(ans,(int)ceil(mp['P']*1.0/2));
ans=max(ans,(int)ceil(mp['A']*1.0/2));
ans=max(ans,mp['K']);
ans=max(ans,mp['E']);
ans=max(ans,mp['N']);
ans=max(ans,mp['C']);
ans=max(ans,mp['M']);
printf("%d",ans);
return 0;
}

浙公网安备 33010602011771号