题解 P7369【 [COCI2018-2019#4] Elder】
Thomas_Cat · · 题解
标题名字奇奇怪怪(
这题思路其实很简单。
设现在的赢家为 (int)i 来存入数组,
但是有下面几个坑点:
-
对于每一组输入数据
x,y ,会有下面的可能:-
x,y \not\in \{w\} -
s \ne \sum\limits_{i=65}^{90}c_i
-
思路很简单,就是直接用 winner 数组和 sum 数组标记即可。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
char a;
cin>>a;
int n,sum=1;//同下,已经有人使用过,直接标记为1
cin>>n;
char winner=a;
int flag[10001]={0};
flag[(int)a]=1;//注意要先标记这里的一开始掌管者已经使用了
for(int i=1;i<=n;i++){
char x,y;
cin>>x>>y;
if(winner!=x&&winner!=y) continue;
else{
if(winner==y){
if(flag[(int)x]==0){//如上所述,上面的字符串用flag数组表示
flag[(int)x]=1;//同理
sum++;
}
winner=x;//注意标记赢者
}
}
}
cout<<winner<<endl;//输出
cout<<sum;
return 0;
}