Cod sursa(job #472695)
| Utilizator | Data | 26 iulie 2010 12:51:02 | |
|---|---|---|---|
| Problema | Ordine | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<fstream>
using namespace std;
int main()
{ifstream q("ordine.in");
ofstream w("ordine.out");
long a[26]={0},n=0,i,x,y;
char c,z;
q>>c;
while(!q.eof())
{a[c-97]++;
n++;
q>>c;}
c='.';
while(n)
{y=1;
for(i=0;i<26;i++)
{if(a[i]!=0&&char(97+i)!=c&&y)
{x=i;
z=char(97+i);
y=0;}
if(a[i]>=(n/2+1))
{x=i;
z=char(97+i);
break;}}
if(z!=c)
{w<<z;
n--;
c=z;
a[x]--;}}
return 0;}
