Cod sursa(job #331465)

Utilizator bugyBogdan Vlad bugy Data 14 iulie 2009 09:27:34
Problema Litere Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
using namespace std;
#define dim 10001
int v[27],w[dim],a[dim];
char s;
int main()
{FILE *f=fopen("litere.in","r"), *g=fopen("litere.out","w");
int i,n,m,ss=0,sss=0,schimb=0,j,k;
	fscanf(f,"%d ",&n);
	m=n;
for(i=1;i<=n;i++)
	{fscanf(f,"%c",&s);
	a[++sss]=(int)s-96;
	v[(int)s-96]++;}
	i=1;
while(m!=0)
	if(v[i]!=0)
		{w[++ss]=i;m--;v[i]--;}
	else i++;

	for(i=1;i<ss;i++)
		if(a[i]!=w[i])
			{for(j=i+1;j<=sss;j++)
				if(a[j]==w[i])
					{	
						schimb+=j-i;
						if(j-i==1)
							a[j]=a[i];
						else
						for(k=j;k>i;k--)
							a[k]=a[k-1];
						
						j=sss+1;
					}
			}	
	fprintf(g,"%d\n",schimb);
	

fclose(f);
fclose(g);

return 0;}