题目链接:http://poj.org/problem?id=2232
题目描述:
一些人围成一圈,输入他们此时的手势(石头、剪刀、布),每次选择一个人A,那个人与他逆时针B比较手势,输得淘汰,若一样,B淘汰,每次A的选择是随机的,问最后能够赢的人的个数。
可以看成是,若只有一种手势,则都可以赢,若有两种手势,则克其的能赢,若有三种手势,则都可以赢。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std ;
int main(){
int n ;
int a, b, c ;
char ch ;
while( cin >> n ){
a = b = c = 0 ;
for( int i = 0; i < n; i++ ){
cin >> ch ;
if( ch == 'C' )
a++ ;
else if( ch == 'S' )
b++ ;
else
c++ ;
}
if( a != 0 && b != 0 && c != 0 )
cout << n << endl ;
else{
if( (a == 0 && b == 0 && c != 0) || (a == 0 && c == 0 && b != 0) || (b == 0 && c == 0 && a != 0 ))
cout << n << endl ;
else{
if( a == 0 )
cout << b << endl ;
else if( b == 0 ){
cout << c << endl ;
}
else
cout << a << endl ;
}
}
}
return 0 ;
}