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;

}

 

你可能感兴趣的:(sms)