Cod sursa(job #652559)

Utilizator slycerdan dragomir slycer Data 24 decembrie 2011 23:06:31
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
/* 
 * File:   Elementulmajoritar.cpp
 * Author: slycer
 *
 * Created on December 24, 2011, 10:51 PM
 */

#include <cstdlib>
#include <fstream>
#include <iostream>
using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {

   // cout << "asa da"; 
    ifstream input ("elmaj.in");
    ofstream output ("elmaj.out");
    long int n; 
    input >> n; 
    unsigned long int data[n];
    int value;
    int count=0; 
    for ( int i=0; i<n; i++){
        input >> data[i];
       // cout << data[i] << " " ; 
        if ( count == 0 ){
             value = data[i]; 
             count++;
        } else {
            if ( value == data[i] ){
                count ++; 
            } else {
                count --; 
            }
        }
    }
    int nr=0; 
    for ( int i=0; i<n; i++){
        if ( data[i] == value ){
            nr++;
        }
    }
    if ( nr >=(n/2)+1 ){
        output << value << " " << nr; 
    } else {
        output << "-1";
    }
    return 0;
}