HDU 정렬 - 1106

10807 단어 HDU

HDU 정렬 - 1106


제목 대의:


제목에 서술한 바와 같다.

분석:


이 문제는 구덩이가 많습니다. 시작이 5일 수도 있고 끝일 수도 있고 5일 수도 있고 중간에 5가 여러 개가 이어질 수도 있어요.

AC 코드:

#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
string s;
string str[10000];
int t=0,tmp1,tmp2;
int num[10000];
int main(){
    while(cin>>s){
        memset(str,0,sizeof(str));//        
        memset(num,0,sizeof(num));
        t=0;

        int len=s.length();

        for(int i=0;i<len;i++)
            if(s[i]=='5')
                s[i]=' ';

        for(int i=0;i<len;i++)
            if(s[i]!=' '){
                tmp1=i;
                break;//            
            }
        for(int i=0;i<len;i++)
            if(s[i]!=' ')
                tmp2=i;//             

        for(int i=tmp1;i<=tmp2;i++){
            if(s[i]!=' '){
                str[t].push_back(s[i]);
            }

            else{
                if(i>0 && s[i-1]==' ')//            
                    continue;
                str[t].push_back('\0');//                
                t++;
            }
        }
        str[t++].push_back('\0');
        for(int i=0;i<t;i++)
            num[i]=stoi(str[i]);//         

        sort(num,num+t);//  

        for(int i=0;i<t-1;i++)//         
            cout<<num[i]<<" ";
        cout<<num[t-1]<<endl;
    }
    return 0;
}


좋은 웹페이지 즐겨찾기