Veţi implementa funcţia cu următorul antet:
== code(cpp) |
std::vector<int> rank_cats(std::vector<int> p, std::vector<int> f, std::vector<int> d)
// comentariu
#include <cstdio> // comment1
// comment2
int main()
{
return 0;
}
==
*Atenţie!* Funcţia $rank_cats$ va fi apelată *cel puţin o dată şi de cel mult 10 ori.* Cei trei vectori $p,f$ şi $d$ vor avea aceeaşi lungime şi vor reprezenta clasamentele tuturor celor $N = |p|$ pisici, conform fiecăruia dintre cele trei criterii menţionate. De exemplu, $p{~i~}$ $(0 < N)$ va reprezenta numărul de ordine al pisicii de pe locul $i + 1$ după pufoşenie. *Se garantează că fiecare dintre cei trei vectori reprezintă permutări ale numerelor de la $1$ la $N$*.
h2. Date de intrare
Pentru ca soluţia returnată să fie validă, trebuie ca lungimea vectorului returnat să fie egală cu $N$ şi ca acesta să reprezinte un clasament cumulat valid, conform cu explicaţiile din enunţ. *Dacă nu există niciun clasament valid, funcţia trebuie să returneze vectorul vid (de lungime zero).*
Fişierul de intrare $pisi.in$ ...
{**Din cauza limitărilor impuse de infoarena şi pentru a reproduce condiţiile din concurs, recomandăm să foloseşti template-urile de 'aici':problema/pisi?pisi.zip .**}
h2. Date de ieşire
h2. Punctare
În fişierul de ieşire $pisi.out$ ...
h2. Restricţii
table(example). |_. Subtask |_. Punctaj |_. Constrângeri |
| 1
| 8 puncte
| 1 ≤ N ≤ 10
|
| 2
| 8 puncte
| 1 ≤ N ≤ 17
|
| 3
| 23 puncte
| 1 ≤ N ≤ 2.000
|
| 4
| 61 puncte
| 1 ≤ N ≤ 100.000
|
* $... ≤ ... ≤ ...$
h2. Exemple
h2. Exemplu
table(example). |_. pisi.in |_. pisi.out |
| 6
3 1 6 4 5 2
1 3 4 5 6 2
3 4 2 6 1 5
| 3 1 4 6 5 2
|
| 3
3 1 2
2 3 1
1 2 3
| NO SOLUTION
|
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
h3. Explicaţie
Cele trei pisici expuse corespunzătoare celui de-al doilea exemplu sunt ilustrate mai jos:
table(pisi). |_. Concurentul 1 |_. Concurentul 2 |_. Concurentul 3 |
| !problema/pisi?pisi1.png!
| !problema/pisi?pisi2.png!
| !problema/pisi?pisi3.png!
|
Concurentul cu numărul 1 este mai pufos şi mai iubit decât concurentul 2, dar este mai puţin pufos şi mai puţin fotogenic decât concurentul 3. În schimb, concurentul 2 este mai fotogenic şi mai iubit decât concurentul 3.
În concluzie, nu putem determina un clasament cumulat al celor trei concurenţi.
...
== include(page="template/taskfooter" task_id="pisi") ==