Cod sursa(job #1073170)
| Utilizator | Data | 5 ianuarie 2014 18:56:55 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
using namespace std;
const int MAX_N = 1e6;
int A[MAX_N];
int main(){
ifstream cin( "elmaj.in" );
int N;
cin >> N;
int cand, k = 0;
for( int i = 0; i < N; ++i ){
cin >> A[i];
if( !k ){
cand = A[i];
k = 1;
}
else{
if( cand == A[i] ) ++k;
else --k;
}
}
cin.close();
int nr = 0;
for( int i = 0; i < N; ++i )
if( A[i] == cand ) ++nr;
ofstream cout( "elmaj.out" );
if( nr < N / 2 + 1 ) cout << -1;
else cout << cand << " " << nr;
return 0;
}
