BNU49101:rating计算

来源:互联网 发布:乐乎lofte网页版 编辑:程序博客网 时间:2024/05/29 03:15

whalyzh最近参加了一个叫做BC(BNU CODER)比赛,比赛分为N场。参加的每个账号都有一个rating,初始时rating值为1500,每场比赛后系统会对参加的账号进行评价,如果评价为good,则该账号rating增加100分,但是不会超过3299;如果评价为bad,则该账号rating下降100分,但是不会低于0分。为了避免越做rating越低的情况,whalyzh注册了两个账号,每场比赛他只会使用rating低的账号(如果rating一样就随便用一个)。现在,他想知道N场比赛后rating高的那个账号rating是多少。

Input

输入数据有多组。

第一行输入一个整数T(T≤10),表示数据组数。

每组数据第一行为两个整数N(N≤10^3),代表比赛场数。

接下来N行每行一个字符串good或者bad,代表第i场比赛中whalyzh获得的评价。

Output

每组数据输出一个数,代表rating高的账号的rating值。

Sample Input

22goodgood2goodbad

Sample Output

16001600

Source

第十三届北京师范大学程序设计竞赛决赛

Author

hwq


#include <iostream>#include <stdio.h>#include <string.h>#include <stack>#include <queue>#include <map>#include <set>#include <vector>#include <math.h>#include <algorithm>using namespace std;#define ls 2*i#define rs 2*i+1#define up(i,x,y) for(i=x;i<=y;i++)#define down(i,x,y) for(i=x;i>=y;i--)#define mem(a,x) memset(a,x,sizeof(a))#define w(a) while(a)#define LL long longconst double pi = acos(-1.0);#define N 105#define mod 19999997const int INF = 0x3f3f3f3f;#define exp 1e-8int t,n;char str[100];int main(){    int s[2];    scanf("%d",&t);    w(t--)    {        scanf("%d",&n);        s[0] = s[1] = 1500;        w(n--)        {            scanf("%s",str);            if(str[0]=='g')            {                s[0]+=100;            }            else            {                s[0]-=100;            }            sort(s,s+2);            s[0]=s[0]>3299?3299:s[0];            s[0]=s[0]<0?0:s[0];            s[1]=s[1]>3299?3299:s[1];            s[1]=s[1]<0?0:s[1];        }        sort(s,s+2);        printf("%d\n",s[1]);    }}


0 0
原创粉丝点击