Cod sursa(job #2015720)

Utilizator refugiatBoni Daniel Stefan refugiat Data 27 august 2017 09:56:17
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
ifstream si("ordine.in");
ofstream so("ordine.out");
string s;
int ap[30];
int main()
{
    si>>s;
    for(int i=0;i<s.size();++i)
        ++ap[s[i]-'a'];
    int pr=-5;
    for(int i=0;i<s.size();++i)
    {
        int j,ok,sol;
        for(ok=1,j=0;j<26&&ok;++j)
        {
            if(ap[j]==(s.size()-i)/2+1)
            {
                sol=j;
                ok=false;
            }
        }
        for(j=0;j<26&&ok;++j)
        {
            if(ap[j]&&j!=pr)
            {
                sol=j;
                ok=false;
            }
        }
        so<<(char)(sol+'a');
        --ap[sol];
        pr=sol;
    }
    return 0;
}