Cod sursa(job #1228263)

Utilizator icansmileSmileSmile icansmile Data 13 septembrie 2014 13:43:37
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include<fstream>
#define Nmax 1000001
using namespace std;
ifstream f("elmaj.in",ios::in);
ofstream g("elmaj.out",ios::out);
long a[Nmax];
void quick( long inf, long sup )
{
     long i,j,t,p;
     i=inf;
     j=sup;
     p=a[(i+j)/2];
     do
     {
                  while(i<=sup && a[i]<p) i++;
                  while(j>=inf && a[j]>p) j--;
                  if(i<=j)
                  {
                          t=a[i];
                          a[i]=a[j];
                          a[j]=t;
                          i++;
                          j--;}}
      while(i<=j);
      if(inf<j) quick(inf,j);
      if(sup>i) quick(i,sup);}
int main()
{
    long n,k,i1,nr,j1,x,i2;
    f>>n;
    for(k=1;k<=n;k++)
    f>>a[k];
    quick(1,n);
    i1=1;
    nr=0;
    while(i1<=n/2)
    {j1=i1+n/2;
    if(a[i1]==a[j1])
    {x=a[i1];
    for(i2=i1;i2<=n;i2++)
    if(a[i2]==x)
    nr++;
    g<<a[i1]<<' '<<nr;
    g<<'\n';}
    else
    g<<-1;
    i1++;}
    return 0;}