Headshot UVA - 1636

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");
    }
}
Published 50 original articles · won praise 0 · Views 595

Guess you like

Origin blog.csdn.net/zpf1998/article/details/104240884