Cod sursa(job #115250)

Utilizator ChallengeMurtaza Alexandru Challenge Data 16 decembrie 2007 11:49:27
Problema Litere Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 2, Clasa a 9-a Marime 1.39 kb
#include <stdio.h>
#include <string.h>

long int  i,n,j,ints,ls,ok1,ok2;
char str[10000];

void Schimba(int i,int j){
char a[2];
a[1]=str[i];
str[i]=str[j];
str[j]=a[1];
}

void Citire(){
FILE *f;
f=fopen("litere.in","r");
fscanf(f,"%ld\n",&n);
fscanf(f,"%s",str);
fclose(f);
}

void Afisare(){
FILE *f;
f=fopen("litere.out","w");
fprintf(f,"%ld",ints);
fclose(f);
}

int PosChar(char a){
int i;
if(a=='a'){
	i=1;
}
else
if(a=='b'){
	i=2;
}
else
if(a=='c'){
	i=3;
}
else
if(a=='d'){
	i=4;
}
else
if(a=='e'){
	i=5;
}
else
if(a=='f'){
	i=6;
}
else
if(a=='g'){
	i=7;
}
else
if(a=='h'){
	i=8;
}
else
if(a=='i'){
	i=9;
}
else
if(a=='j'){
	i=10;
}
else
if(a=='k'){
	i=11;
}
else
if(a=='l'){
	i=12;
}
else
if(a=='m'){
	i=13;
}
else
if(a=='n'){
	i=14;
}
else
if(a=='o'){
	i=15;
}
else
if(a=='p'){
	i=16;
}
else
if(a=='q'){
	i=17;
}
else
if(a=='r'){
	i=18;
}
else
if(a=='s'){
	i=19;
}
else
if(a=='t'){
	i=20;
}
else
if(a=='u'){
	i=21;
}
else
if(a=='v'){
	i=22;
}
else
if(a=='w'){
	i=23;
}
else
if(a=='x'){
	i=24;
}
else
if(a=='y'){
	i=25;
}
else
if(a=='z'){
	i=26;
}
else{i=4081;}
return i;
}

int main(){
Citire();
ints=0;
i=0;
while(i<n){
	if(PosChar(str[i])>PosChar(str[i+1])){
   	Schimba(i,i+1);
      ok1=0;
      ints++;
      i--;
   }
   else{i++;}
}
Afisare();
return 0;
}