Cod sursa(job #1038390)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 21 noiembrie 2013 14:29:49
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("ordine.in");
ofstream g("ordine.out");
int n, i, j, ap[256], ok, nr;
char lit[1000001], p;

int main()
{
    f>>lit;
    n=strlen(lit);
    for(i=0; i<n; i++)
    {
        ap[lit[i]]++;
    }
    nr=n;
    p=1;
    for(i=0; i<n; i++)
    {
        ok=0;
        for(j='a'; j<='z'; j++)
        {
            if(ap[j]>=nr/2+1)
            {
                ok=1;
                g<<(char)j;
                p=(char)j;
                nr--;
                ap[j]--;
                break;

            }
        }
        if(ok==0)
        {
            for(j='a'; j<='z'; j++)
            {
                if(ap[j]!=0 && p!=char(j))
                {
                    g<<(char)j;
                    ap[j]--;
                    nr--;
                    p=j;
                    break;
                }
            }
        }
    }
    return 0;
}