Cod sursa(job #1899087)

Utilizator TimmVodita Timotei Timm Data 2 martie 2017 15:23:06
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n,v[1000],t,k;
int poz(int li,int ls)
{
    int aux,i,j,ii=0,jj=-1;
    i=li;
    j=ls;
    while(i<j)
    {
        if(v[i]>v[j])
        {
            aux=v[i];
            v[i]=v[j];
            v[j]=aux;
            aux=ii;
            ii=-jj;
            jj=-aux;
        }
        i=i+ii;
        j=j+jj;
    }
    return i;
}
/*
int qsort(int li,int ls)
{
    if(li<ls)
    {
        int k=poz(li,ls);
        qsort(li,k-1);
        qsort(k+1,ls);
    }
}
*/
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
    t=(n/2)+1;
    int li=1,ls=n;
    do
    {
        k=poz(li,ls);
        if(k>t)
            ls=k-1;
        if(k<t)
            li=k+1;
    }
    while(k!=t);
    g<<v[k]<<" "<<k;
    /*
    qsort(1,n);
    for(int i=1;i<=n;i++)
        g<<v[i]<<" ";
    */

    return 0;
}