小学生又来写题解啦!
你可能会认为,能够使用杯座人数的最大值,就是杯座数量。
但结合样例一,若杯座数量大于总人数,只能输出总人数。
下一个问题是如何计算杯座数量。
边读入边计算即可,若是普通座位,计数器直接加。
若是爱心座位,见到第一个座位时,计数器直接加,并标记已经记过了这个双人座。
若发现双人座标记,则计数器不用加,但要把标记清除。
事实上,输出时还有细节,在代码处会提出。
满分代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n, cnt = 0;
bool L = false; //双人座标记,开始时置零。
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
char t;
cin >> t;
if (t == 'S') cnt++;
else if (t == 'L')
{
if (L == false) cnt++, L = true;
else L = false;
}
}
//以下两行输出十分容易写错。
if (cnt+1 > n) printf("%d", n);
else printf("%d", cnt + 1); //只用加最左侧的杯座,因为右侧杯座已经判过了。
return 0;
}
首发:2022-01-29 22:46:25
标签:cnt,false,杯座,题解,else,int,P8080 From: https://www.cnblogs.com/liangbowen/p/16622757.html