Tehnici de programare
Președintele unei țări este ales de către parlament, din care fac parte n deputați. Pentru a fi ales,
președintele trebuie să primească cel puțin 2/3 din voturile deputaților. Între anumiți deputați există
conflicte de interese. Doi deputați daflați în conflict de interese votează diferit. Fiind date numărul natural
n și perechile x,y, în care deputații cu numărul de ordine x și y au conflicte de interese. Să se verifice dacă
este posibilă alegerea președintelui.
C++
Răspunsuri la întrebare
Răspuns:
Pentru a răspunde la această întrebare, vom lua în considerare următorii pași:
Calculăm numărul total de voturi necesare pentru a alege președintele (denumit voturi_necesare):
Pentru a calcula acest lucru, împărțim numărul total de deputați (n) la trei și înmulțim rezultatul cu doi.
int voturi_necesare = (n / 3) * 2;
Calculăm numărul de voturi diferite care vor fi date de deputații în conflict de interese (denumit voturi_diferite).
Pentru fiecare pereche de deputați în conflict de interese (x, y), adăugăm la voturi_diferite un unitate.
int voturi_diferite = 0;
for (int i = 0; i < numar_perechi; ++i) {
voturi_diferite++;
}
Verificăm dacă este posibilă alegerea președintelui.
Dacă numărul total de voturi necesare (voturi_necesare) este mai mare sau egal cu numărul de voturi diferite (voturi_diferite), atunci președintele nu poate fi ales.
Dacă numărul total de voturi necesare (voturi_necesare) este mai mic decât numărul de voturi diferite (voturi_diferite), atunci președintele poate fi ales.
if (voturi_necesare >= voturi_diferite) {
// Președintele nu poate fi ales
} else {
// Președintele poate fi ales
}
Cu toate acestea, acest răspuns este doar o orientare generală pentru rezolvarea acestei probleme și poate fi necesară adaptarea sa în funcție de cerințele specifice ale problemei.