Cod sursa(job #1600825)

Utilizator cosceexcosceex cosceex Data 15 februarie 2016 14:16:40
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.34 kb
//#include <fstream>
//
//using namespace std;
//
//ifstream f("elmaj.in");
//ofstream g("elmaj.out");
//
//    int v[1000001];
//
//int main()
//{
//    long n,i,x,nr=0;
//
//    f>>n;
//    for(i=1;i<=n;i++)
//        f>>v[i];
//
//    x=v[1];
//    for(i=1;i<=n;i++)
//    {
//        if(v[i]==x)
//            ++nr;
//        else
//            --nr;
//        if(nr<0)
//            {x=v[i];
//             nr=1;}
//    }
//    if(nr>0)
//    {nr=0;
//
//    for(i=1;i<=n;i++)
//    {
//        if(v[i]==x)
//            ++nr;
//    }
//    if(nr==((n/2)+1))
//        g<<x<<" "<<nr;
//    else  if(nr<((n/2)+1))
//        g<<"-1";
//    }
//    else
//        g<<-1;
//    return 0;
//}
//
////
#include <fstream>

using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int v[1000001];
int main()
{   int n,i,nr=1,maj;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    for(i=1;i<=n;i++)
       {if(i==1)
           {maj=v[i];
            nr=0;}

       if(maj==v[i])
           nr++;
       else nr--;
       if(nr<0)
        {maj=v[i];
        nr=1;}}
     if(nr>=1)
    {nr=0;
    for(i=1;i<=n;i++)
       if(maj==v[i])
           nr++;
       if(nr>=n/2+1)
     fout<<maj<<" "<<nr;
     else
        fout<<-1;}
     else fout<<-1;



    return 0;
}