Pagini recente » Cod sursa (job #687896) | Cod sursa (job #2498920) | Cod sursa (job #931017) | Cod sursa (job #668626) | Cod sursa (job #997101)
Cod sursa(job #997101)
#include<stdio.h>
char q[1000000];
int v[26];
int main()
{
FILE *f, *g;
int i,s=0,a1,a2;
f=fopen("ordine.in","r");
g=fopen("ordine.out","w");
fscanf(f,"%s",&q);
//stabilesc vectorul de frecventa
i=0;
while(i<strlen(q))
{
v[q[i]-'a']++;
i++;
}
//stabilesc s .
for(i=0;i<26;i++)
s+=v[i];
//stabilesc a1 si a2
a1=0;
while(v[a1]==0)
a1++;
a2=a1+1;
while(v[a2]==0)
a2++;
while(s>0)
{
while(v[a1]!=0 && v[a2]!=0)
{
if(a1+'a'>='a' && a1+'a'<='z')
fprintf(g,"%c",a1+'a');
v[a1]--;s--;
if(v[a1]!=0)
{
if(a2+'a'>='a' && a2+'a'<='z')
fprintf(g,"%c",a2+'a');
v[a2]--;s--;
}
}
if(v[a1]==0)
{
a1=a2;
a2=a1+1;
while(v[a2]==0)
a2++;
}
else
{
a2++;
while(v[a2]==0)
a2++;
}
}
fclose(f);
fclose(g);
return 0;
}