Cod sursa(job #780355)

Utilizator repp4raduRadu-Andrei Szasz repp4radu Data 20 august 2012 13:30:03
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <cstring>

#define MAX 1000005
#define NMAX 26

using namespace std;

char sir[MAX];
int v[NMAX];

int main()
{
    ifstream in("ordine.in"); in.getline(sir, MAX); in.close();
    int lgt = strlen(sir);
    for(int i = 0; i < lgt; i++) v[sir[i] - 'a']++;
    ofstream out("ordine.out"); int b = -1, a = -1;
    for(int i = 0; i < lgt; i++)
    {
        int j = 0;
        while(!v[j] || j == a) j++;
        b = a; a = j;
        for(j = a + 1; j < NMAX; j++)
            if(v[j] == (lgt - i) / 2 + 1 && j != b)
                a = j;
        v[a]--;
        out<<(char)('a' + a);
    }
    out.close();
    return 0;
}