Pagini recente » Cod sursa (job #1759199) | Cod sursa (job #85442) | Cod sursa (job #1519426) | Cod sursa (job #2197960) | Cod sursa (job #2795878)
#include <bits/stdc++.h>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int n;
int a[1000005];
int dig[3][1000];
void cit()
{
in>>n;
for(int i=0; i<n; i++)
in>>a[i];
}
void prg()
{
for (int i = 0; i < n; i++)
{
int tmp = a[i];
for (int j = 0; j < 3; j++)
{
dig[j][tmp % 1000]++;
tmp /= 1000;
}
}
int ret = 0;
for (int i = 0; i < 999; i++)
{
if (dig[0][i] > n/2)
ret += i;
if (dig[1][i] > n/2)
ret += i * 1000;
if (dig[2][i] > n/2)
ret += i * 1000000;
}
int nr = 0;
for (int i = 0; i < n; i++)
{
if (a[i] == ret)
nr++;
}
if (nr > n/2)
out<<ret<<' '<<nr;
else
out<< -1;
}
int main()
{
cit();
prg();
in.close();
out.close();
return 0;
}
/**
int digitMajority(int n, int[] a) {
int[][] dig = new int[3][1000];
for (int i = 0; i < n; i++) {
int tmp = a[i];
for (int j = 0; j < 3; j++) {
dig[j][tmp % 1000]++;
tmp /= 1000;
}
}
int ret = 0;
for (int i = 0; i < 999; i++) {
if (dig[0][i] > n/2)
ret += i;
if (dig[1][i] > n/2)
ret += i * 1000;
if (dig[2][i] > n/2)
ret += i * 1000000;
}
int nr = 0;
for (int I = 0; I < n; i++) {
if (a[i] == ret)
nr++;
}
if (nr > n/2)
return ret;
else
return -1;
}
*/