Pagini recente » Cod sursa (job #2434134) | Cod sursa (job #2528615) | Cod sursa (job #2758786) | Cod sursa (job #1081315) | Cod sursa (job #709862)
Cod sursa(job #709862)
//Include
#include <stdio.h>
#include <limits.h>
#include <queue>
using namespace std;
//Variabile
FILE *in, *out;
int n;
int citit;
int curent = -1, nrAparitii;
int elemMax, aparitiiMax;
priority_queue<int> q;
//Main
int main()
{
in = fopen("elmaj.in","rt");
out = fopen("elmaj.out","wt");
fscanf(in, "%d", &n);
for(int i=1 ; i<=n ; ++i)
{
fscanf(in, "%d",&citit);
q.push(citit);
}
q.push(INT_MIN);
while(!q.empty())
{
if(q.top() == curent)
++nrAparitii;
else
{
if(nrAparitii > aparitiiMax)
{
aparitiiMax = nrAparitii;
elemMax = curent;
}
curent = q.top();
nrAparitii = 1;
}
q.pop();
}
if(aparitiiMax >= n/2+1)
fprintf(out, "%d %d", elemMax, aparitiiMax);
else fprintf(out, "-1");
fclose(in);
fclose(out);
return 0;
}