Pagini recente » Cod sursa (job #603263) | Cod sursa (job #2754461) | Cod sursa (job #1512614) | Istoria paginii runda/wellcodesimulareav-11martie/clasament | Cod sursa (job #658068)
Cod sursa(job #658068)
#include<fstream>
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
void quicks(int a[],int stg,int dr)
{int i=stg;
int j=dr;
int pivot=a[(i+j)/2];
while(i<=j)
{while(a[i]<pivot)i++;
while(a[j]>pivot)j--;
if(i<=j){int b=a[i];
a[i]=a[j];
a[j]=b;
i++;
j--;}
}
if(stg<j) quicks(a,stg,j);
if(dr>i) quicks(a,i,dr);
}
int majoritar(int v[100],int n)
{int i,nrap=0;
quicks(v,1,n);
for(i=1;i<=n;i++)
if(v[i]==v[n/2]) nrap++;
if(nrap>=((n/2)+1)) return nrap;
else return-1;
}
}
int main()
{int n,a[100],i,nrap=0;
in>>n;
for(i=1;i<=n;i++)
in>>a[i];
if(majoritar(a,n)!=-1) {quicks(a,1,n);
out<<a[n/2]<<" "<<majoritar(a,n);
}
else out<<-1;
return 0;}