Pagini recente » Cod sursa (job #3282698) | Cod sursa (job #1781669) | Cod sursa (job #691064) | Cod sursa (job #510796) | Cod sursa (job #1540920)
#include <iostream>
#include<fstream>
#include<stdlib.h>
using namespace std;
ifstream f("buget.in");
ofstream g("buget.out");
int v[100001];
void s(int a, int b)
{
int i,j,a1;
i=rand()%(a-b)+a;
a1=v[i];
v[i]=v[b];
v[b]=a1;
if(v[a]>v[b])
j=a-1;
else
j=a;
for(i=a+1;i<b;i++)
{
if(v[i]<=v[b] && j!=i-1)
{
a1=v[i];
v[i]=v[j+1];
v[j+1]=a1;
j++;
}
else if(v[i]<=v[b] && j==i-1)
j++;
}
a1=v[b];
v[b]=v[j+1];
v[j+1]=a1;
if(a<j)
s(a,j);
if(j+2<b)
s(j+2,b);
}
int main()
{
int n,k,i;
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
s(1,n);
g<<1;
return 0;
}