1427. SMS

http://acm.timus.ru/problem.aspx?space=1&num=1427

没想到这道题错了N遍  细节很重要呀

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
#include<cmath>
#include<set>
#include<vector>
#include<list>
#include<stack>
#include<queue>
using namespace std;

typedef pair<int,int> pp;
typedef long long ll;
const int N=100005;
char s[N];
int main()
{
    //freopen("data.in","r",stdin);
    int n,m;
    while(scanf("%d %d",&n,&m)!=EOF)
    {
        gets(s);
        gets(s);//puts(s);
        int ln=strlen(s);
        int sum=0;
        int a=0,b=0;
        for(int i=0;i<=ln;++i)
        {
            if(i==ln)
            {
                if(a>0)
                ++sum;
                break;
            }
            if(s[i]==' '||(s[i]<='Z'&&s[i]>='A')||(s[i]<='z'&&s[i]>='a'))
            {
                if(b!=-1)
                ++b;
            }else
            {
                b=-1;
            }
            ++a;
            if(b!=-1&&b==m)
            {
                ++sum;
                a=0;
                b=0;
                continue;
            }
            if(b==-1)
            {
                if(a==n)
                {
                    ++sum;
                    a=0;
                    b=0;
                }else if(a>n)
                {
                    ++sum;
                    a=0;
                    b=0;
                    --i;
                }
            }
        }
        cout<<sum<<endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/liulangye/p/3233437.html