Cod sursa(job #1104948)
Utilizator | Data | 11 februarie 2014 11:33:47 | |
---|---|---|---|
Problema | Ordine | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.83 kb |
#include<stdio.h>
int v[26];
int main()
{
FILE *fin,*fout;
fin=fopen("ordine.in","r");
fout=fopen("ordine.out","w");
char ch=fgetc(fin);
while(ch!='\n'&&ch!=EOF)
{
v[ch-'a']++;
ch=fgetc(fin);
}
char cprev='1';
int i;
for(i=0; i<26; i++)
{
int poz=i+1;
while(v[i]!=0)
{
v[i]--;
if(cprev=='a'+i)
{
int j=poz;
while(j<26&&v[j]==0)
j++;
if(j<26)
{
v[j]--;
fprintf(fout,"%c",'a'+j);
poz=j;
cprev='a'+j;
}
}
fprintf(fout,"%c",'a'+i);
cprev='a'+i;
}
}
return 0;
}