Pagini recente » Cod sursa (job #3165130) | Cod sursa (job #1563332) | Cod sursa (job #2500120) | Cod sursa (job #2649948) | Cod sursa (job #2219152)
#include <fstream>
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <string.h>
using namespace std;
int DIM = 10;
ofstream fout("elmaj.out");
int N;
int *A;
void Read();
void Check(int pos);
int main()
{
Read();
srand(time(NULL));
if (N < DIM)
DIM = (N >> 1) + 1;
int *test = (int*)malloc(DIM * sizeof(int));
memset(test, 0, DIM * sizeof(int));
for (int i = 0; i < DIM; )
{
int proposed = rand() % N;
for (int j = 0; j < i; ++j)
if (test[j] == proposed)
goto pass;
test[i] = proposed;
i++;
pass:
;
}
//cout << DIM << "\n";
for (int i = 0; i < DIM; ++i)
Check(test[i]);
fout << -1;
fout.close();
return 0;
}
void Check(int pos)
{
//cout << pos << ' ' << A[pos] << '\n';
int count = 0;
for (int i = 0; i < N; ++i)
if (A[i] == A[pos])
count++;
if (count > (N >> 1))
{
fout << A[pos] << ' ' << count;
fout.close();
exit(0);
}
else
return;
};
void Read()
{
ifstream fin("elmaj.in");
fin >> N;
A = (int*)malloc(N * sizeof(int));
for (int i = 0; i < N; i++)
fin >> A[i];
fin.close();
};