Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
3540 - Ambuscada
(section)
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Rezolvare== <syntaxhighlight lang="python" line> #3540 Ambuscada def verificare_date_intrare(N, M, V, atacuri): # Verificăm dacă N, M și V sunt în intervalul specificat if not (2 <= N <= 1000000000 and 1 <= M <= 100000 and 1 <= V <= 1000000000): return False # Verificăm fiecare atac for atac in atacuri: i, j, k = atac # Verificăm dacă i, j și k sunt în intervalul specificat if not (1 <= i <= j <= N and 1 <= k <= V): return False return True def soldati_ramasii(N, M, V, atacuri): # Inițializăm un vector cu viețile soldaților soldati = [V] * N # Parcurgem fiecare atac și actualizăm starea soldaților afectați for atac in atacuri: i, j, k = atac for index in range(i-1, j): soldati[index] -= k # Numărăm câți soldați au vieți pozitive și returnăm rezultatul soldati_ramas = sum(1 for viata in soldati if viata > 0) return soldati_ramas def main(): # Citim datele de intrare din fișier with open('ambuscada.in', 'r') as f: linii = f.readlines() # Verificăm dacă există suficiente linii în fișierul de intrare if len(linii) < 2: # Scriem mesaj de date invalide în fișierul de ieșire with open('ambuscada.out', 'w') as f: f.write("Date invalide: Nu sunt suficiente date in fisierul de intrare") return # Extragem N, M și V din prima linie try: N, M, V = map(int, linii[0].split()) except ValueError: # Scriem mesaj de date invalide în fișierul de ieșire with open('ambuscada.out', 'w') as f: f.write("Date invalide: Linia 1 nu contine suficiente valori") return # Verificăm dacă există suficiente atacuri în fișierul de intrare if len(linii) - 1 < M: # Scriem mesaj de date invalide în fișierul de ieșire with open('ambuscada.out', 'w') as f: f.write("Date invalide: Nu sunt suficiente atacuri in fisierul de intrare") return # Citim atacurile atacuri = [tuple(map(int, line.split())) for line in linii[1:M+1]] # Verificăm datele de intrare if not verificare_date_intrare(N, M, V, atacuri): # Scriem mesaj de date invalide în fișierul de ieșire with open('ambuscada.out', 'w') as f: f.write("Datele de intrare sunt invalide") return # Calculăm numărul de soldați rămași în viață soldati_ramas = soldati_ramasii(N, M, V, atacuri) # Scriem rezultatul în fișierul de ieșire with open('ambuscada.out', 'w') as f: f.write(str(soldati_ramas)) if __name__ == "__main__": main() </syntaxhighlight>
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width