Pagini recente » Cod sursa (job #924643) | Cod sursa (job #787680) | Cod sursa (job #1888474) | Cod sursa (job #1391890) | Cod sursa (job #1756235)
#include <fstream>
using namespace std;
ifstream f("elmaj.in"); ofstream g("elmaj.out");
int v[1000001];
int main()
{ int n;
f>>n;
for(int i=1;i<=n;++i) f>>v[i];
int maj=v[1],nr=1;
for(int i=2;i<=n;++i)
if(v[i]==maj) nr++;// cita vreme avem maj incrementam numarul de maj gasite
else
{ nr--; // altfel decrementam numarul de maj
if(nr<0) // daca am scazut sub zero alegem drept candidat
{maj = v[i]; nr = 1;}; // elementul curent care apare o data
}
nr=0; // verificare candidat la element majoritar
for(int i=1;i<=n;++i)
if(v[i]==maj) nr++; // numaram de cit ori apare maj in vector
if(nr>n/2) g<<maj<<' '<<nr<<'\n'; // daca maj apare de mai mult de n/2 ori este majoritar
else g<<"-1\n";
g.close(); return 0;
}