Cod sursa(job #1715489)

Utilizator ade_tomiEnache Adelina ade_tomi Data 10 iunie 2016 21:12:51
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include<iostream>
#include<cstring>
#include<fstream>
using namespace std;
int i,j,f[30],k;
char c1,c2,c;
string s,sol;
int main()
{

    ifstream cin("ordine.in");
    ofstream cout("ordine.out");
    cin>>s;
    for(i=0; i<s.size(); i++)
        f[s[i]-'a']++;

    c=-1;
    for(i=0; i<s.size(); i++)
    {

        for(j=0; j<='z'-'a'; j++)
        {

            if(f[j]>0)
                if(i<0)
                {
                    int ok=0;
                    for(k=j+1; k<='z'-'a'; k++)
                        if(f[k]>(s.size()-i)/2)
                            ok=1;
                    if(ok==1)
                        continue;

                    f[j]--;
                    sol+=(char)(j+'a');
                    break;
                }
                else if(sol[i-1]!=j+'a')
                {
                    int ok=0;
                    for(k=j+1; k<='z'-'a'; k++)
                        if(f[k]>(s.size()-i)/2)
                            ok=1;
                    if(ok==1)
                        continue;
                    f[j]--;
                    sol+=(char)(j+'a');
                    break;
                }

        }
    }
    cout<<sol;
    return 0;
}