Cod sursa(job #885025)
Utilizator | Data | 21 februarie 2013 16:13:15 | |
---|---|---|---|
Problema | Ordine | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.71 kb |
#include<algorithm>
#include<fstream>
using namespace std;
ifstream in("ordine.in");
ofstream out("ordine.out");
char ch,x,lit,z;
int fr[256],n,i;
int main()
{
while(in>>ch){
n++;
fr[ch]++;}
x='0';
while(n!=0){
int max=0;lit='0';z='0';
for(i='a';i<='z';i++){
if(fr[i]>max&&i!=x){
max=fr[i];
lit=(char)i;}
if(fr[i]!=0&&i!=x&&z=='0')
z=(char)i;
}
if(max>n/2){
out<<lit;
x=lit;
n--;fr[lit]--;
continue;}
else{
out<<z;n--;fr[z]--;
x=z;
}
}
return 0;
}