Pagini recente » Cod sursa (job #1059925) | Borderou de evaluare (job #1981036) | Cod sursa (job #2886917) | Cod sursa (job #1988566) | Cod sursa (job #341575)
Cod sursa(job #341575)
#include <iostream.h>
#include <fstream.h>
#include <string.h>
char a[100000];
long long n,i,j,nrsol;
void inter()
{
int ok=0;
while(!ok)
{ // se repeta cat timp ok = 0
ok=1; // ok retine 1 daca vectorul este ordonat
for(int i=0;i<n-1;i++)
if(a[i]>a[i+1])
{
//daca s-au gasit doua caractere adiacente neordonate
//se interschimba valorile de pe pozitiile respective
//si se numara ca solutie
char tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
ok=0; // ok retine 0 - este posibil ca vectorul sa nu fie ordonat complet
nrsol++;
}
}
}
int main()
{
ifstream f("litere.in");
ofstream g("litere.out");
f>>n;
f.get();
i=0;
while (!f.eof())
f.get(a[i++]);
inter();
g<<nrsol;
return 0;
}