Atenție! Aceasta este o versiune veche a paginii., scrisă la 2023-03-20 13:02:15.000.
Revizia anterioară   Revizia următoare  

Fișierul intrare/ieșire unificare.in, unificare.out Sursă OJI 2023 Clasa a 6-a
Autor Raluca Costineanu Adăugată de avatar mihai.tutu Mihai Tutu mihai.tutu
Timp de execuție pe test 0.05 sec Limită de memorie 65536 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip emptystea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Unificare (clasa a 6-a)

Prin operația de unificare a două numere naturale a și b înțelegem obținerea celui mai mare număr care se poate forma din cifrele distincte din scrierea numărului a și cifrele distincte din scrierea numărului b. De exemplu, unificând a = 727952 cu b = 92868 vom obține numărul 99876522, deoarece din a vom utiliza cifrele 2, 5, 7, 9, iar din b cifrele 2, 6, 8, 9. Cel mai
mare număr pe care îl putem forma cu aceste cifre este 99876522.

Operația de unificare poate fi aplicată și pentru k numere, respectând aceeași regulă: pentru fiecare număr din cele k identificăm cifrele distincte care apar în scrierea lui, apoi determinăm cel mai mare număr care se poate forma utilizând
toate aceste cifre. De exemplu, unificând numerele 112, 223 și 12334 vom obține 43322211.

Se dau două numere naturale, n și k, și un șir de n numere naturale a1, a2, . . . , an.

Cerințe

Determinați și afișați:

  1. cel mai mare număr de exact k cifre din șirul dat;
  2. cel mai mare număr care poate fi obținut prin unificarea a două valori aflate pe poziții alăturate în șirul dat;
  3. cel mai mare număr care se poate obține prin unificarea a k valori aflate pe poziții consecutive în șirul dat.

Date de intrare

Fișierul de intrare unificare.in conține pe prima linie un număr natural C, reprezentând cerința ce trebuie rezolvată (1, 2 sau 3), pe a doua linie n și k, cu semnificația din enunț, iar pe a treia linie cei n termeni ai șirului precizat, în ordinea din șir. Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu.

Date de ieșire

In fișierul de ieșire unificare.out:
  • dacă C = 1, se va afișa pe prima linie cel mai mare număr de k cifre din șirul dat;
  • dacă C = 2, se va afișa pe prima linie cel mai mare număr obținut prin unificarea a două numere alăturate în șir;
  • dacă C = 3, se va afișa pe prima linie valoarea maximă obținută prin unificarea a k valori aflate pe poziții consecutive.

Restricții

  • C ∈ {1, 2, 3}; 1 ≤ n ≤ 100 000; 1 ≤ k ≤ n/2;
  • 0 ≤ ai ≤ 100000000, pentru oricare 1 ≤ i ≤ n
  • pentru C = 1 și k ≤ 8 se acordă 20 puncte
  • pentru C = 2 și n = 2 se acordă 5 puncte
  • pentru C = 2 și 0 ≤ ai ≤ 9 se acordă 10 puncte
  • pentru C = 2 și fără restricții se acordă 35 puncte
  • pentru C = 3 și k ≤ 8 se acordă 15 puncte
  • pentru C = 3 și k ≤ n/2 se acordă 15 puncte

Exemplu

unificare.in unificare.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicație

...

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 4 categorii