Pagini recente » Cod sursa (job #266693) | Cod sursa (job #268388) | Cod sursa (job #761864) | Cod sursa (job #1871506) | Cod sursa (job #633202)
Cod sursa(job #633202)
#include <fstream>
#include <iostream>
using namespace std;
inline int vote(const int vec[], const int n, int& number)
{
int k=0, cand=-1, num=0;
for (int i=0; i<n; ++i)
{
if (0 == k)
{
cand = vec[i];
k++;
}
else if (vec[i] == cand)
{
k++;
}
else
{
k--;
}
}
if (cand == -1)
return -1;
for (int i=0; i<n; ++i)
{
if (vec[i] == cand)
num++;
}
if (num>n/2)
{
number = cand;
return num;
}
return -1;
}
int main()
{
int n, *vec;
fstream fin("elmaj.in", fstream::in);
fstream fout("elmaj.out", fstream::out);
fin >> n;
//cout << n << endl;
vec = new int[n];
for (int i=0; i<n; ++i)
{
fin >> vec[i];
//cout << vec[i] << " ";
}
//cout << endl;
int number, times;
times = vote(vec, n, number);
if (times == -1)
fout << -1 << "\n";
else
fout << number << " " << times << "\n";
delete[] vec;
fin.close();
fout.close();
return 0;
}