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
1063 - Arme
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!
== Cerința == Vasile joacă (din nou!) jocul său preferat cu împuşcături. Personajul său are la brâu N arme, aşezate în N huse speciale, numerotate de la 1 la N. Arma din husa i are puterea pbi (1≤i≤N). În camera armelor a găsit M arme, aşezate pe perete, în M locaţii, numerotate de la 1 la M. Pentru fiecare armă j (1≤j≤M) este cunoscută puterea sa pcj. Vasile poate înlocui arme pe care le are la brâu cu arme aflate pe perete în camera armelor. La o înlocuire el ia arma de pe perete din locaţia j (1≤j≤M) şi o pune la brâu în husa i (1≤i≤N), iar arma din husa i o pune pe perete în locaţia j. Scrieţi un program care să determine suma maximă a puterilor armelor pe care le va avea la brâu Vasile după efectuarea înlocuirilor. == Date de intrare == Fișierul de intrare arme.in conține pe prima linie numerele naturale N M, reprezentând numărul de arme pe care le are la brâu, respectiv numărul de arme aflate în camera armelor. Pe a doua linie se află N numere naturale pb1 pb2 … pbN reprezentând în ordine puterile armelor pe care Vasile le are la brâu. Pe a treia linie se află M numere naturale pc1 pc2 … pcM reprezentând în ordine puterile armelor aflate în camera armelor. Numerele scrise pe aceeaşi linie sunt separate prin spaţiu. == Date de ieșire == Fișierul de ieșire arme.out va conține o singură linie pe care va fi scrisă suma maximă a puterilor armelor de la brâul lui Vasile, după efectuarea înlocuirilor. == Restricții și precizări == *1 ≤ N, M ≤ 1000 *Puterile armelor sunt numere naturale ≤ 10.000. * Greutatea și valoarea fiecărei arme sunt numere întregi pozitive == Exemplu 1 == ;Intrare 3 2<br> 3 1 7<br> 4 5 ;Iesire 16 == Rezolvare == <syntaxhighlight lang="python" line> def main(): with open("arme.in", "r") as f: # Citim dimensiunile N și M N, M = map(int, f.readline().strip().split()) # Citim puterile armelor de la brâu puteri_brau = list(map(int, f.readline().strip().split())) # Citim puterile armelor din camera armelor puteri_camera = list(map(int, f.readline().strip().split())) # Restricții și precizări assert 1 <= N <= 1000, "N trebuie să fie între 1 și 1000" assert 1 <= M <= 1000, "M trebuie să fie între 1 și 1000" assert all(1 <= pb <= 10000 for pb in puteri_brau), "Puterea armelor de la brâu trebuie să fie între 1 și 10000" assert all(1 <= pc <= 10000 for pc in puteri_camera), "Puterea armelor din cameră trebuie să fie între 1 și 10000" # Sortăm puterile armelor de la brâu în ordine crescătoare puteri_brau.sort() # Sortăm puterile armelor din cameră în ordine descrescătoare puteri_camera.sort(reverse=True) # Înlocuim armele de la brâu cu cele din cameră for i in range(min(N, M)): if puteri_camera[i] > puteri_brau[i]: puteri_brau[i] = puteri_camera[i] else: break # Calculăm suma maximă a puterilor armelor de la brâu suma_maxima = sum(puteri_brau) with open("arme.out", "w") as f: f.write(f"{suma_maxima}\n") 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