Cod sursa(job #681552)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 17 februarie 2012 12:48:29
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<cstdio>
#include<cstring>
int i,n,x[27],t,j,k,o;
char s[1000002],l[1000002];
int main()
{FILE *f=fopen("ordine.in","r"),*g=fopen("ordine.out","w");
fgets(s,1000002,f);
n=strlen(s)-1;
for(i=0;i<n;i++)
     x[s[i]-'a']++;
for(i=0;i<26;i++)
for(j=0;j<x[i];j++)
     s[k++]=i+'a';
for(i=0;i<n;i=o)
     {t=x[s[i]-'a'];
     for(k=i;k<2*t+i-1;k+=2)
            l[k]=s[i];
     for(k=i+1,j=0;k<2*t+i-1;j++,k+=2)
     if(x[s[i+j+t]-'a'])
            l[k]=s[i+j+t],x[s[i+j+t]-'a']--;
     o=i+2*t-1;}
fputs(l,g);  
return 0;}