Cod sursa(job #1122060)
Utilizator | Data | 25 februarie 2014 15:47:53 | |
---|---|---|---|
Problema | Ordine | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.96 kb |
#include <fstream>
using namespace std;
ifstream f("ordine.in");
ofstream g("ordine.out");
int n,i,fr[256],k=1,nr,a;
char ch,ch1,ch2;
int main()
{
while(f>>ch)
{
nr++;
fr[ch]++;
}
a=nr;ch1='+';
while(nr!=0)
{
ch2='+';
for(ch='a';ch<='z';ch++)
{
if(fr[ch]>=nr/2+1)
{
ch2=ch;
}
}
for(ch='a';ch<='z';ch++)
{if(fr[ch]>0&&ch!=ch1)
{break;}
}
if(ch2!='+')
{
g<<ch2;
fr[ch2]--;
nr--;
ch1=ch2;
}
else
{g<<ch;
fr[ch]--;
nr--;
ch1=ch;}
}
return 0;
}