/*
translation:
给出一串字符串(只包含01),第一个选择的位置是0,之后有两种选择,一种是跳到一个随机的位置,
另外一种是跳转到下一个位置。希望下一个位置是0的话,应该是跳到一个随机的位置(输出ROTATE)
还是跳到下一个位置(SHOOT)。
solution:
离散概率。
直接利用概率公式即可解决。
note:
date: 2016.9.28
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 100 + 5;
char a[maxn];
int main()
{
//freopen("in.txt", "r", stdin);
while(~scanf("%s", a)) {
int len = strlen(a), res = 0;
for(int i = 0; i < len; i++)
if(a[i] == '1') res++;
double rotate_ = (double)res / len;
int cnt1 = 0, cnt2 = 0;
for(int i = 0; i < len; i++) {
if(a[i] == '0') {
cnt1++;
if(a[(i + 1) % len] == '1') cnt2++;
}
}
double shoot_ = (double)cnt2 / cnt1;
//printf("shoot:%lf rotate:%lf\n", shoot_, rotate_);
if(shoot_ == rotate_) printf("EQUAL\n");
else if(shoot_ < rotate_) printf("SHOOT\n");
else printf("ROTATE\n");
}
return 0;
}
uva1636(离散概率)
最新推荐文章于 2021-09-11 22:01:28 发布