Nu aveti permisiuni pentru a descarca fisierul grader_test18.ok
Cod sursa(job #328148)
Utilizator | Data | 1 iulie 2009 09:27:20 | |
---|---|---|---|
Problema | Ordine | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.79 kb |
#include <stdio.h>
FILE *f,*g;
long i,p,poz,ok;
char c;
long a[28];
int main(){
f=fopen("ordine.in","r");
g=fopen("ordine.out","w");
for (i=1;i<=27;i++) a[i]=0;
while (!feof(f)){
fscanf(f,"%c",&c);
if (c!='\n') a[c-96]++;
}
ok=1;
poz=1;
while (a[poz]==0&&poz<=26) poz++;
p=poz;
p++;
while (a[p]==0&&p<=26) 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<=26) p++;
}
while (a[poz]==0&&poz<=26) poz++;
if (p==poz){
p++;
while (a[p]==0&&p<=26) p++;
}
/*ok=0;
for (i=1;i<=26;i++)
if (a[i]!=0){
ok=1;
break;
}*/
if (poz==26&&a[poz]==0){
ok=0;
break;
}
}
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;
}