problem
Two people playing Russian turntable, an array of known bullets, the first shot is empty, want a second gun is empty, how should we do? Two options, SHOOT (sequential bomb bay under a) or the ROTATE (a random bomb bay), are the same, then the output EQUAL
analysis
#include <cstring>
#include <cstdio>
#include <vector>
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
typedef long long ll;
const int maxn=100+10;
const double eps=1e-6;
char ch[maxn];
int main(void){
while(scanf("%s",ch)!=EOF){
int len=strlen(ch),n0=0,n1=0; //0和1的数量,加起来是总和
int n=0; //连续两次是空的情况数量
for(int i=0;i<len;++i){
if(ch[i]=='0') n0++;
else n1++;
}
ch[len]=ch[0];
for(int i=0;i<len;++i){
if(ch[i]=='0' && ch[i+1]=='0') n++;
}
double ans1=(double)n0/len; //rotate
double ans2=(double)n/n0; // n:shoot
if(ans1>ans2+eps) printf("ROTATE\n");
else if(ans1<ans2-eps) printf("SHOOT\n");
else printf("EQUAL\n");
}
}