Pagini recente » Cod sursa (job #2142327) | Cod sursa (job #295929) | Cod sursa (job #908735) | Cod sursa (job #478317) | Cod sursa (job #1710533)
#include <iostream>
#include <fstream>
#include <cmath>
#define maxx 1001
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
/*struct hashh {
int nrEl;
int vect[maxx/2];
};
int M;
void incarcaHash ( hashh H[] ){
for ( int i = 0; i< maxx; i++ ){
H[i].nrEl = 0;
}
}
void citireSir ( int sir[], int& lungime ){
f >> lungime;
M = sqrt(lungime)+1;
for ( int i = 0; i< lungime; i++ )
f >> sir[i];
//f.close();
}
void inserare ( int& lungime, int sir[], int val ){
if ( lungime == 0 ){
sir[lungime ] = val;
lungime ++;
}else{
int i = lungime - 1;
lungime ++;
while ( sir[i] > val ){
sir[i+1] = sir[i];
i--;
}
sir[i+1] = val;
}
}
void adaugaInformatiiHash ( int sir[], int lungime, hashh H[] ){
for ( int i = 0; i< lungime; i++ ){
inserare( H[sir[i]%M].nrEl, H[sir[i]%M].vect, sir[i]);
}
}
int cautaElement_majoritar ( hashh H[], int lungime){
for ( int i = 0; i< M; i++ ){
if( H[i].nrEl > lungime/2 ){
if ( H[i].vect[0] == H[i].vect[H[i].nrEl / 2 ] && H[i].nrEl/2 > lungime/2)
return H[i].vect[0];
}
}
return -1;
}
*/
int main()
{
/* int sir[maxx], lungime;
hashh H[maxx];
citireSir(sir, lungime);
incarcaHash(H);
adaugaInformatiiHash(sir, lungime, H);
g << cautaElement_majoritar(H, lungime);
f.close();
g.close();
return 0;*/
int n,M=0,c[10001]={},x,p;
f>>n;
for(int i=1;i<=n;i++){f>>x;c[x]++;
if(c[x]>M){M=c[x];p=x;}}
if(M>=(n+1)/2)g<<p<<' '<<M;else g<<-1;
return 0;}