P9095 [PA2020] Wybór zadań 题解
思路
输入
定义一个二维数组存储每种题目的数量,每次输入后找到对应的项加上一。最后扫一
遍这个二维数组。扫描的时候要注意一下有
详细思路请见代码。
Code:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
int a[10][10];//第一项表示比赛编号,第二项表示题目编号
string s;//输入的题号,不用再说
int n;
bool flag;//如果有空的项,就让flag=1,如果flag=1,输出NIE,否则输出TAK
int main(){
cin>>n;
if(n<18){
cout<<"NIE";
return 0;//如果n比18小,直接结束程序
}
for(int i=1;i<=n;i++){
cin>>s;
int sum=s[1]-64;//这里将字母转为数字,A转为1,B转为2,C转为3
a[s[0]-'0'][sum]++;//s[0]-'0'->字符转数字
}
for(int i=1;i<=4;i++){//先判断前4次
for(int j=1;j<=3;j++){
if(a[i][j]<1) flag=1;//如果发现空的项,就让flag=1
}
}
if(a[5][1]<2||a[5][2]<2||a[5][3]<2) flag=1;//第五场比赛单独判断
if(flag==0) cout<<"TAK";//判断flag是否为1
else cout<<"NIE";
return 0;
}
感谢观看!
AC记录,供参考