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
1164 - inception
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!
== Enunt == În seara dinaintea probei de concurs, Cobby a avut un vis demn de un Oscar, cu mai multe evenimente. Se făcea că lumea era reprezentată ca o matrice pătratică de latură N, cu liniile și coloanele numerotate de la 1 la N, în care fiecare element era inițial vid. Privind în jur, a realizat că atunci când visează un element al matricei, situat la intersecția liniei i cu coloana j, interiorul acestuia se împarte în N linii și N coloane, ca o nouă matrice. Apoi, dacă visează la un element din matricea nou formată sau din cea inițială, se întâmplă la fel. Pentru a nu se rătăci, eroul nopții a decis să atribuie un indice fiecărei matrice formată începând cu cea inițială căreia i-a asociat indicele 1. Matricele care se creează primesc indici numere naturale consecutive (2, 3, …), în ordinea în care se obţin. Astfel, fiecare element din visul lui Cobby este definit de 3 numere: id – indicele atribuit matricei din care face parte, i şi j – indicii liniei şi coloanei pe care se află elementul. Cobby realizează că, oricât ar încerca, nu poate visa un element decât o singură dată. Pentru a face visul şi mai interesant, el reţine pentru fiecare matrice un număr natural denumit “coeficient de importanţă”, iniţial 0 pentru fiecare matrice din vis. Din când în când, eroul nostru alege una dintre matrice şi adaugă o valoare VAL la coeficientul de importanță al ultimelor NR matrice din care s-a obținut aceasta, inclusiv ea. == Cerința == După ce au loc toate evenimentele din vis, Cobby vrea să ştie valoarea finală a coeficientului de importanţă pentru un șir de K matrice date prin indicii lor. Deoarece el se grăbeşte să participe la Concursul Naţional Urmaşii lui Moisil, îţi revine ţie misiunea de a găsi răspunsul pentru fiecare matrice. == Date de intrare == Pe prima linie a fişierului inception.in se află valorile N – numărul de linii şi coloane din fiecare matrice, Q – numărul de evenimente care au loc în visul lui Cobby, K – numărul de matrice pentru care Cobby vrea să ştie coeficientul de importanţă. Următoarele Q linii respectă unul dintre formatele: *1 id i j – Cobby visează elementul de pe linia i şi coloana j din matricea cu indicele id *2 id NR VAL – Cobby adaugă valoarea VAL la coeficienţii de importanţă a NR matrice începând cu matricea cu indicele id. Pe linia Q+2 se află K valori id1 id2 ... idK, separate prin câte un spaţiu, ce reprezintă indicii matrice lor pentru care trebuie afişată valoarea finală a coeficientului de importanţă. Evenimentele se petrec în ordinea în care sunt date în fişier. == Date de ieșire == Pe prima linie a fişierului inception.out se află K valori r1 r2 ... rK, separate prin câte un spaţiu, unde ri reprezintă coeficientul final al matricei cu id-ul id i, i din [1,K]. == Restricții și precizări == *1 ≤ N ≤ 500000 *1≤ Q ≤ 300000 *1≤VAL≤1000 *1 ≤ K, NR, id ≤ numărul total de operații de tipul 1. *În ambele tipuri de evenimente valoare id corespunde unei matrice formate anterior. *Se garantează că există cel puţin NR matrice care pot fi modificate pentru operaţia de tipul 2. *Pentru 20% dintre teste orice matrice va conţine cel mult un element visat. == Exemplul 1 == ;inceptionin.txt :3 6 3 :1 1 2 3 :1 2 3 3 :2 3 3 5 :1 1 3 1 :1 2 3 1 :2 5 2 3 :2 1 4 ;inceptionout.txt :Datele introduse corespund restrictiilor impuse. :8 5 0 == Exemplul 2 == ;inceptionin.txt :0 484 0 :-2 -3 -54 :-86 9 2 :-83 -3 5 :-23 -24 0 :-1 -2 -6 ;inceptionout.txt :Datele de intrare nu corespund restrictiilor impuse. == Rezolvare = <syntaxhighlight lang="python3" line="1"> def visul_lui_cobby(N, evenimente): coeficient_importanta = [0] # Lista coeficienților de importanță pentru fiecare matrice matrice_curenta = [[0] * N for _ in range(N)] # Matricea curentă for eveniment in evenimente: id, i, j, VAL, NR = eveniment # Creăm o nouă matrice matrice_noua = [[0] * N for _ in range(N)] # Copiem elementele din matricea curentă în matricea nouă for x in range(N): for y in range(N): matrice_noua[x][y] = matrice_curenta[x][y] # Actualizăm coeficientul de importanță pentru matricea curentă coeficient_importanta[-1] += VAL # Actualizăm ultimele NR matrice cu coeficientul de importanță for k in range(NR): coeficient_importanta[-k - 2] += VAL # Adaugăm coeficientul de importanță pentru matricea nouă coeficient_importanta.append(0) # Actualizăm elementul din matricea curentă și obținem matricea nouă matrice_noua[i - 1][j - 1] = id matrice_curenta = matrice_noua return coeficient_importanta[1:] # Excludem primul element din lista de coeficienți print(rezultat) </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