Cerința
Se dă un vector cu n
elemente, numere naturale. Verificați dacă vectorul are un element majoritar. Numim element majoritar o valoare pentru care numărul de apariții în vector este mai mare decât n/2
.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n
numere naturale, separate prin spații, reprezentând elementele vectorului.
Date de ieșire
Programul va afișa pe ecran mesajul NU
, dacă vectorul nu are un element majoritar, respectiv DA X
, dacă vectorul are un element majoritar, unde X
este valoarea acestuia.
Restricții și precizări
1 ≤ n ≤ 100.000
- cele
n
numere citite vor fi mai mici decât1.000.000.000
Exemplu
Intrare
10 5 2 1 5 3 5 5 1 5 5
Ieșire
DA 5
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Majoritar:
#include <iostream>
using namespace std;
int n, x[100005];
int main(){
cin >> n;
for(int i = 0 ; i < n ; ++ i)
cin >> x[i];
int candidat = x[0], contor = 1;
for(int i = 1; i < n ; ++i)
{
if(x[i] == candidat)
contor++;
else
contor --;
if(contor == 0)
candidat = x[i], contor = 1;
}
contor = 0;
for(int i = 0 ; i < n ; ++ i)
if(x[i] == candidat)
contor ++;
if(contor > n/2)
cout << "DA " << candidat;
else
cout << "NU";
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #497 Majoritar
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #497 Majoritar de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!