刘汝佳 《算法竞赛入门经典(第二版)》第三章习题 3-1
习题3-1 得分(ACM/ICPC Seoul 2005,UVa1585)
给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如:OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。
#include <iostream>
#include <cstring>
using namespace std;
const int N = 85;
char s[N];
int cnt = 0, sum;
int main() {
gets(s);
int a[strlen(s)];
for (int i = 0; i < strlen(s) ; i++) {
if (s[i] == 'O') {
sum += ++cnt;
} else if (s[i + 1] == 'X') {
cnt = 0;
}
a[i] = cnt;
}
int num = 0;
for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
num += a[i];
}
printf("%d", num);
return 0;
}`在这里插入代码片`