Pagini recente » Cod sursa (job #1795478) | Cod sursa (job #1139369) | Cod sursa (job #591125) | Cod sursa (job #196977) | Cod sursa (job #328127)
Cod sursa(job #328127)
Utilizator |
Zethpix Zethpix |
Data |
1 iulie 2009 08:52:19 |
Problema |
Ordine |
Scor |
0 |
Compilator |
cpp |
Status |
done |
Runda |
w0 |
Marime |
0.69 kb |
#include <stdio.h>
FILE *f,*g;
long i,p,poz,ok;
char c;
long a[27];
int main(){
f=fopen("ordine.in","r");
g=fopen("ordine.out","w");
for (i=1;i<=26;i++) a[i]=0;
while (!feof(f)){
fscanf(f,"%c",&c);
if (c!='\n') a[int(c)-96]++;
}
ok=1;
poz=1;
while (a[poz]==0) poz++;
p=poz;
p++;
while (a[p]==0) p++;
while (ok){
fprintf(g,"%c",char(96+poz));
a[poz]--;
if (a[poz]){
a[p]--;
fprintf(g,"%c",char(96+p));
while (a[p]==0) p++;
}
while (a[poz]==0) poz++;
if (p==poz){
p++;
while (a[p]==0) p++;
}
ok=0;
for (i=1;i<=26;i++)
if (a[i]){
ok=1;
break;
}
}
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;
}