Cod sursa(job #755470)

Utilizator vendettaSalajan Razvan vendetta Data 5 iunie 2012 20:57:14
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("ordine.in");
ofstream g("ordine.out");

string s;
int ap[200];

void citeste(){

    f >> s;
    for(int i=0; i<s.size(); i++) ++ap[s[i]];

}

void rezolva(){

    for(int i='a'; i<='z'; i++){
        if (ap[i] == 0) continue;
        if (ap[i] == 1) {
            --ap[i];
            char c = i;
            g << c;
            continue;
        }
        for(int j=1; j<=ap[i]; j++){
            char c = i;
            g << c;
            for(int k='a'; k<='z'; k++){
                if (k == i) continue;
                if (ap[k] == 0) continue;
                char cc = k;
                g << cc;
                --ap[k];
                break;
            }
        }
        ap[i] = 0;
    }

}

int main(){

    citeste();
    rezolva();

    f.close();
    g.close();

    return 0;

}