Diferente pentru problema/engineer intre reviziile #5 si #33

Nu exista diferente intre titluri.

Diferente intre continut:

Intr-un univers plin de tractoare, este nevoie de un inginer (in engleza, "engineer") iscusit care se poate ocupa de intretinerea acestora. Fiecare tractor de pe lumea aceasta are nevoie de afectiune, la fel ca cel de mai jos.
Desigur, probabil ca va intrebati cum de omenirea a ajuns sa depinda atat de mult de existenta acestor masinarii care scot mult fum. Dupa implementarea cu succes a unui robot capabil sa rezolve orice problema de algoritmica, inclusiv cele NP-complete, majoritatea programatorilor au decis sa isi ocupe timpul liber facand agricultura. Astfel, lucrurile s-au schimbat radical: in loc sa iti doresti sa implementezi o problema cat mai rapid sau corect (precum se intampla la o competitie de ACM), acum castigatorul duelului este acela a carui plantatie este cea mai productiva.
Desigur, probabil ca va intrebati cum de omenirea a ajuns sa depinda atat de mult de existenta acestor masinarii care scot mult fum. Dupa implementarea cu succes a unui robot capabil sa rezolve orice problema de algoritmica (folosind "machine learning":https://en.wikipedia.org/wiki/Machine_learning), inclusiv cele NP-complete, majoritatea programatorilor au decis sa isi ocupe timpul liber facand agricultura. Astfel, lucrurile s-au schimbat radical: in loc sa iti doresti sa implementezi o problema cat mai rapid sau corect (precum se intampla la o competitie de ACM), acum castigatorul duelului este acela a carui plantatie este cea mai productiva.
Cum solutia perfecta niciodata nu exista, modul in care productivitatea plantatiei unui programator este evaluata, nu este cel mai corect. Fiecare programator detine o plantatie ce poate fi privita ca o **submatrice** a unei matrice de <tex>$Nx$M</tex>, in care fiecare celula <tex>($i,$j)</tex> cu <tex>$1$\leq$$i$\leq$$N</tex> si <tex>$1$\leq$$j$\leq$$M</tex> retine o valoare, reprezentand productia acelei celule. In continuare, in stabilirea productivitatii totale a unui programator, inginerul nostru va avea de calculat elementul de pe a <tex>$K_i-a</tex> pozitie in ordine sortata al submatricei detinute de acel programator. Inainte de a da startul acestei competitii nonconformiste intre programatori, trebuie sa ne asiguram ca al nostru inginer este suficient de brav incat poate calcula productivitatea fiecarui programator in parte.
Cum solutia perfecta niciodata nu exista, modul in care productivitatea plantatiei unui programator este evaluata, nu este cel mai corect si difera de la caz la caz. Fiecare programator detine o plantatie ce poate fi privita ca o **submatrice** a unei matrice de $N$ x $M$, in care fiecare celula $(i, j)$ cu $1$ &le; $i$ &le; $N$ si $1$ &le; $j$ &le; $M$ retine o valoare, reprezentand indicele de productivitate al acelei celule. In continuare, in stabilirea productivitatii medii a unui programator $i$, inginerul nostru va avea de calculat care este a $K[~i~]$-a cea mai mica valoare dintre cele care se afla in plantatia acestuia. Inainte de a da startul acestei competitii nonconformiste intre programatori, trebuie sa ne asiguram ca al nostru inginer este suficient de brav incat poate calcula productivitatea fiecarui programator in parte.
h2. Cerinta
<tex>'Avand o matrice de $Nx$M, se cere calcularea elementului median pentru $Q submatrici date. O submatrice este caracterizata de ($x_1, $y_1, $x_2, $y_2), celulele ($x_1, $y_1) si ($x_2, $y_2) reprezentand coltul stanga-sus, respectiv coltul dreapta-jos. Orice submatrice poate fi privita ca un vector, deci elementul median este definit ca fiind valoarea ce se afla pe pozitia din mijloc **daca am sorta vectorul in ordine crescatoare**(in cazul in care lungimea vectorului este '</tex>
Avand o matrice de $N$ x $M$, se cere gasirea celei de a $K[~i~]$-a (cu $1$ &le; $i$ &le; $Q$) celei mai mici valori pentru Q submatrici date. O submatrice este caracterizata de $(x[~1~], y[~1~], x[~2~], y[~2~])$, celulele $(x[~1~], y[~1~])$ si $(x[~2~], y[~2~])$ reprezentand coltul stanga-sus, respectiv coltul dreapta-jos. Orice submatrice poate fi privita ca un vector, deci a $K[~i~]$-a valoare pentru o submatrice data este valoarea care s-ar afla pe pozitia $K[~i~]$ daca am sorta vectorul.
h2. Date de intrare
Fişierul de intrare $engineer.in$ ...
Fişierul de intrare $engineer.in$ va contine pe prima linie doua numere naturale $N$ si $M$, reprezentand dimensiunile matricei. Urmatoarele $N$ linii vor contine cate $M$ numere naturale, reprezentand valorile indicilor de productivitate ale fiecarei celule in parte. Dupa acestea, va urma o linie pe care se va afla un numar $Q$, reprezentand numarul de programatori. Urmatoarele $Q$ linii vor contine cate cinci numere naturale $x[~1~]$, $y[~1~]$, $x[~2~]$, $y[~2~]$, $K[~i~]$, reprezentand coltul-stanga sus si coltul-dreapta jos al plantatiei alocate fiecaruia dintre cei $Q$ programatori, cat si $K[~i~]$, cu semnificatia din enunt.
h2. Date de ieşire
În fişierul de ieşire $engineer.out$ ...
În fişierul de ieşire $engineer.out$ vor fi $Q$ linii, pe fiecare dintre acestea aflandu-se o valoare reprezentand productivitatea medie pentru fiecare programator in parte, pe cea de a $i$-a linie aflandu-se solutia pentru cel de al $i$-lea programator.
h2. Restricţii
* $... &le; ... &le; ...$
* $1$ &le; $N$ &le; $1100$
* $1$ &le; $M$ &le; $1100$
* $1$ &le; $Q$ &le; $1000$
* $1$ &le; $x[~1~]$ &le; $x[~2~]$ &le; $N$
* $1$ &le; $y[~1~]$ &le; $y[~2~]$ &le; $M$
* $1$ &le; $K[~i~]$ &le; $(x[~2~] - x[~1~] + 1)$ * $(y[~2~] - y[~1~] + 1)$
* Valorile din matrice sunt numere naturale cuprinse intre $1$ si $10^9^$
* Programatorii pot avea aceleasi plantatii sau plantatiile lor se pot suprapune
* In cazul in care doi programatori $i$ si $j$ detin exact aceeasi plantatie, nu este garantat ca $K[~i~]$ este egal cu $K[~j~]$
h2. Exemplu
table(example). |_. engineer.in |_. engineer.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
| 2 2
  3 2
  1 2
  4
  1 1 2 2 1
  1 1 2 2 2
  1 1 2 2 3
  1 1 2 2 4
| 1
  2
  2
  3
|
h3. Explicaţie
...
Toti programatorii au exact aceeasi plantatie. Cea mai mica valoare din matrice este 1, a doua cea mai mica este 2, etc.
 
== include(page="template/taskfooter" task_id="engineer") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.