Cod sursa(job #1600819)

Utilizator cosceexcosceex cosceex Data 15 februarie 2016 14:11:11
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 1.32 kb
#include <fstream>

using namespace std;

ifstream f("elmaj.in");
ofstream g("elmaj.out");

    int v[3000001];

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;
//}