Cod sursa(job #330216)

Utilizator bugyBogdan Vlad bugy Data 9 iulie 2009 10:02:06
Problema Litere Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
using namespace std;
#define dim 999
int v[27];
int w[dim];
int 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,man,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)
							{man=a[i]; a[i]=a[j]; a[j]=man;}
						else
						{
							man=a[j];	
						for(k=j;k>i;k--)
							a[k]=a[k-1];
						
						a[i]=man;
						
						}
						break;
					}
				
	fprintf(g,"%d\n",schimb);
	

fclose(f);
fclose(g);

return 0;}