Cod sursa(job #715280)

Utilizator XladhenianGrigorita Vlad-Stefan Xladhenian Data 16 martie 2012 22:44:23
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
                                                     
#include <fstream>
#include <set>
using namespace std;

struct TComp
{
 bool operator()(pair<long,long> *P1,pair<long,long> *P2)
 {
  return P1->first < P2->first;
 }
};

int main(void)
{
 fstream fin("elmaj.in",ios::in);
 fstream fout("elmaj.out",ios::out);
 long N,A,i;
 fin >> N;
 set<pair<long,long> *,TComp> S;
 for (i = 0;i < N;i += 1)
  {
   fin >> A;
   pair<long,long> P(A,1);
   set<pair<long,long> *,TComp>::iterator it = S.find(&P);
   if (it == S.end())
     {
      S.insert(new pair<long,long>(A,1));
     }
    else
     {
      (*it)->second += 1;
     }
  }
 set<pair<long,long> *,TComp>::iterator it = S.begin();
 pair<long,long> *best = (*it);
 it++;
 while (it != S.end())
  {
   if ((*it)->second > best->second)
     {
      best = (*it);
     }
   it++;
  }
 if (best->second > (N / 2))
   {
    fout << best->first << " " << best->second;
   }
  else
   {
    fout << "-1";
   }
 fin.close();
 fout.close();
 return 0;
}