Penalty
算法:模拟
考点:字符串的处理
首先是要读入一整行可以使用getline(cin,str)
然后还要注意到:每组数据第一行为n 整数 ,cin>>n后若getline() 会读入换行符
所以在cin>>n 后需要先cin.get() 然后再 getline(cin,str);
然后注意到此题只能从后判断倒数的两个单词像是在串中查找”no good”子串的做法也不行这种做法没有考虑到名字中包含 no good 的情况。
注意到从后向前查找空格‘ ’的时候若是像 Happy good的情况就不能查找到倒数第二个空格符以确定倒数第二个单词的范围所以这里在读入的时候可以进行处理 x=‘ ’+x;这样就保证能够找到倒数第二个空格
同时数据还有直接 good 或是 no good 的情况,也就是人名为空对于只有good的情况则还需要再在字符串前添加空格符所以 对于每行字符串x的处理是 x=” “+x;
这道题需要考虑非常全面否则不能AC。
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
freopen("a.in","r",stdin);
int n;
cin>>n;
char a[110],b[110];
while(n)
{
int tot=(n+1)/2;
for(int i=0;i<tot;i++)
cout<<i+1<<' ';
cout<