Pagini recente » Cod sursa (job #2974244) | Cod sursa (job #43861) | Cod sursa (job #2535629) | Cod sursa (job #3219900) | Cod sursa (job #1049434)
#include <stdio.h>
#include <iostream>
#include <string>
#include <stdlib.h>
#include <assert.h>
#include <time.h>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <cstring>
#include <fstream>
#include <queue>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <unordered_map>
using namespace std;
#define NMAX 1000001
#define ERROR 0.0001
struct key
{
int numberKey;
int value;
};
int N, a[NMAX];
FILE *g;
struct hashes
{
vector<key>v;
int find (int x)
{
for (int i = 0; i < v.size(); i++)
if ( x == v[i].numberKey )
return i;
return -1;
}
void Add(int x)
{
int index = find(x);
if (index == -1)
{
key k = {x, 1};
v.push_back(k);
}
else
{
v[index].value ++;
}
}
// vector v
};
void hashMajority(int n, int *a )
{
hashes h;
for (int i = 1; i <= n; i++)
h.Add(a[i]);
int found = 0;
for (int i = 0; i < h.v.size() && !found; i++)
{
if (h.v[i].value > n/2)
{
fprintf (g, "%d %d", h.v[i].numberKey, h.v[i].value);
found = 1;
}
}
if ( !found )
fprintf (g, "-1");
}
int main()
{
FILE *f = fopen ("elmaj.in", "r");
g = fopen ("elmaj.out", "w");
fscanf(f, "%d", &N);
for (int i = 1; i <= N; i++)
{
fscanf (f, "%d", &a[i]);
}
hashMajority(N, a);
fclose(f);
fclose(g);
return 0;
}