nyoj525 一道水题

来源:互联网 发布:商场导航软件 编辑:程序博客网 时间:2024/04/28 11:44

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=525


代码:

#include <iostream>#include <string.h>#include <algorithm>using namespace std;const int MAX=50001;char a[MAX];int b[MAX];int tiqu(){    int i,j,len;    len=strlen(a);    int k=0;    a[len]='5';            //数组最后添加一个5的好处    bool if_5=true;        //判断有没有全部都是5的情况    for(i=len;i>=0;i--)    //添加了一个5,所以从len开始倒着    {        bool flag=true;    //判断连续多个5的情况        if(a[i]=='5')        {            int p=1,sum=0;            int vvv=0;            for(j=i-1;a[j]!='5'&&j>=0;j--)            {                 sum=sum+(p*(a[j]-'0'));                 p*=10;                 vvv++;                 flag=false;                 if_5=false;            }            b[k]=sum;            if(!flag)                k++;        }    }    if(if_5)        return 0;    return k;}int main(){    int t;    while(cin>>a){        int len=tiqu();        if(len==0)            {                cout<<"0"<<endl;                continue;            }        sort(b,b+len);        for(int i=0;i<len-1;i++){            cout<<b[i]<<" ";        }        cout<<b[len-1]<<endl;    }    return 0;}