Cod sursa(job #324502)
Utilizator | Data | 16 iunie 2009 13:21:10 | |
---|---|---|---|
Problema | Ordine | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.96 kb |
#include<fstream.h>
#include<string.h>
#define dim 1000001
#define dim2 30
char sir[dim];
int a[dim];
unsigned long n,i,j,l,ok,x;
int main()
{
ifstream f("ordine.in");
ofstream g("ordine.out");
f.getline(sir,dim,'\n');
f.close();
n=strlen(sir);
for(i=0;i<n;i++)
a[sir[i]-'a'+1]++;
l=1;
char car=',';
while(l<=n)
{ok=0;
for(i=1;i<dim2;i++)
if((a[i]==((n-l+1)/2+1))&&((i+'a'-1)!=car))
{x=i;
break;
}
else if(! ok&&a[i]&&((i+'a'-1)!=car))
{x=i;
ok=1;
}
car=(char)(x+'a'-1);
g<<car;
a[x]--;
l++;
}
g<<'\n';
g.close();
return 0;
}