序言
从今天起准备开始每天刷洛谷的题,每天看自己的能力做几题。
从洛谷官方的题单开始,一个个题单完成。
由于前六个题单相对简单,作者本人已经零零散散的完成了一部分,就不发出来了
作者每完成一个题单才会发一篇。
如果有更好的算法欢迎交流。
【算法1-1】模拟与高精度 - 题单 - 洛谷
P1042 [NOIP2003 普及组] 乒乓球 - 洛谷
题目
答案
#include <stdio.h>
char arr[66000];
inline int abs(int a) {
return a > 0 ? a : -a;
}
int main() {
//输入部分
int num = 0;
char ch;
while (1) {
ch = getchar();
if (ch == 'W' || ch == 'L' || ch == 'E')
arr[num++] = ch;
else
continue;
if (ch == 'E')
break;
}
//以11分制进行比赛
int pointA = 0, pointB = 0;
for (int i = 0; i < num; i++) {
if (pointA >= 11 && pointA - pointB >= 2) {
printf("%d:%d\n", pointA, pointB);
pointA = 0;
pointB = 0;
}
if (pointB >= 11 && pointB - pointA >= 2) {
printf("%d:%d\n", pointA, pointB);
pointA = 0;
pointB = 0;
}
if (arr[i] == 'W')
pointA++;
else if (arr[i] == 'L')
pointB++;
else if (arr[i] == 'E')
break;
else
continue;
}
printf("%d:%d\n\n", pointA, pointB);
//以21分制进行比赛
pointA = 0, pointB = 0;
for (int i = 0; i < num; i++) {
if (pointA >= 21 && pointA - pointB >= 2) {
printf("%d:%d\n", pointA, pointB);
pointA = 0;
pointB = 0;
}
if (pointB >= 21 && pointB - pointA >= 2) {
printf("%d:%d\n", pointA, pointB);
pointA = 0;
pointB = 0;
}
if (arr[i] == 'W')
pointA++;
else if (arr