Cod sursa(job #1540920)

Utilizator TonyFrumTony Frum TonyFrum Data 3 decembrie 2015 15:06:37
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#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;
}