UVa.1585

版权声明:Copright ©2017 By CangyeChen https://blog.csdn.net/CANGYE0504/article/details/72802433
There is an objective test result such as \OOXXOXXOOO". An `O' means a correct answer of a problem
and an `X' means a wrong answer. The score of each problem of this test is calculated by itself and
its just previous consecutive `O's only when the answer is correct. For example, the score of the 10th
problem is 3 that is obtained by itself and its two previous consecutive `O's.
Therefore, the score of \OOXXOXXOOO" is 10 which is calculated by \1+2+0+0+1+0+0+1+2+3".
You are to write a program calculating the scores of test results.
Input
Your program is to read from standard input. The input consists of T test cases. The number of test
cases T is given in the rst line of the input. Each test case starts with a line containing a string
composed by `O' and `X' and the length of the string is more than 0 and less than 80. There is no spaces
between `O' and `X'.
Output
Your program is to write to standard output. Print exactly one line for each test case. The line is to

contain the score of the test case.



Sample Input
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO

OOOOXOOOOXOOOOX



Sample Output
10
9
7
55

30



#include <iostream>
#include<cstdio>
using namespace std;

int main()
{
    int m=1,N,q=0;
    char a[80];
    cin>>N;
    int sum[N]={0};
    for(int j=0;j<N;j++)
        {
            m=0;
            scanf("%s",a);
            for(int i=0;a[i]!='\0';i++)
            {
                if(a[i]=='O')
                {
                   m++;
                }
                else m=0;
                sum[j]+=m;
            }

        }

    for(int q=0;q<N;q++)
    {
        cout <<sum[q]<<endl;
    }

    return 0;
}


猜你喜欢

转载自blog.csdn.net/CANGYE0504/article/details/72802433
今日推荐