0575 - Cunoscuti
Cerinţa[edit | edit source]
Într-un grup sunt n persoane, numerotate de la 1 la n și o persoană poate cunoaște alte persoane – relație care nu este reciprocă. Să se determine persoana cea mai cunoscută.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n de noduri și numărul m de relații dintre persoane, iar apoi m perechi de forma i j, cu semnificația că persoana i cunoaște persoana j.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran numărul de ordine al celei mai cunoscute persoane. Dacă răspunsul constă din mai multe persoane, se vor afișa toate, în ordine crescătoare a numerelor de ordine, separate prin exact un spațiu.
Restricţii şi precizări[edit | edit source]
- 1 ≤ n ≤ 100
Exemplu 1[edit | edit source]
- Intrare
5 8 1 3 1 4 3 2 3 4 4 2 5 2 5 4 5 1
- Iesire
Datele de intrare corespund restrictiilor impuse 2 4
Exemplu 2[edit | edit source]
- Intrare
104 0
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def verifica_restrictii(n, arce):
# Verifică dacă datele de intrare respectă restricțiile if not (1 <= n <= 100) or not all(1 <= i <= n and 1 <= j <= n for i, j in arce): return False return True
def persoana_cea_mai_cunoscuta(n, arce):
# Inițializează gradele interioare ale nodurilor grad_interior = [0] * (n + 1)
# Calculează gradele interioare ale nodurilor for _, j in arce: grad_interior[j] += 1
# Determină persoanele cele mai cunoscute max_grad = max(grad_interior) persoane = [i for i in range(1, n + 1) if grad_interior[i] == max_grad]
return persoane
def main():
n, m = map(int, input().split()) arce = [tuple(map(int, input().split())) for _ in range(m)]
# Verifică dacă datele de intrare respectă restricțiile if not verifica_restrictii(n, arce): print("Datele de intrare nu corespund restrictiilor impuse") return
print("Datele de intrare corespund restrictiilor impuse")
# Determină persoanele cele mai cunoscute persoane = persoana_cea_mai_cunoscuta(n, arce)
# Afiseaza rezultatul if persoane: print(' '.join(map(str, sorted(persoane)))) else: print("NU EXISTA")
if __name__ == "__main__":
main()
</syntaxhighlight>