Pagini recente » Cod sursa (job #2771848) | Cod sursa (job #1040977) | Cod sursa (job #844327) | Cod sursa (job #2400784) | Cod sursa (job #164508)
Cod sursa(job #164508)
#include<stdio.h>
long v[27];
int main()
{
FILE *f,*g;
char c;
long i,j,p;
f=fopen("ordine.in","r");
g=fopen("ordine.out","w");
while(!feof(f))
{
fscanf(f,"%c",&c);
v[c-96]++;
}
v[c-96]--;
char c1;
for(i=1;i<=26;i++)
if(v[i]!=0)
{
p=i+1;
while(v[p]==0&&p<26)
p++;
if(v[i]<=v[p])
{ if(c1==i+96)
for(j=1;j<=v[i];j++)
{c=p+96;
fprintf(g,"%c",c);
c=i+96;
fprintf(g,"%c",c);
}
else
for(j=1;j<=v[i];j++)
{c=i+96;
fprintf(g,"%c",c);
c=p+96;
fprintf(g,"%c",c);
}
c1=c;
v[p]=v[p]-v[i];
v[i]=0;
i=p-1;
}
else
{ if(c1==i+96)
for(j=1;j<=v[p];j++)
{c=p+96;
fprintf(g,"%c",c);
c=i+96;
fprintf(g,"%c",c);
}
else
for(j=1;j<=v[p];j++)
{c=i+96;
fprintf(g,"%c",c);
c=p+96;
fprintf(g,"%c",c);
}
c1=c;
v[i]=v[i]-v[p];
v[p]=0;
i--;
}
}
fclose(f);
fclose(g);
return 0;
}