Rezolvare PBinfo #2073

Decorative Icon Problema: PlatouK_v2 / 2073

Decorative IconAutor: Deivid

Fiind dat un șir de numere, numim secvenţă a acestuia o parte dintre termenii şirului luaţi de pe poziţii consecutive. Denumim platou al acestui şir o secvenţă formată din valori identice. Lungimea unui platou este egală cu numărul de elemente care îl formează.

De exemplu, în şirul de numere 1 1 1 7 7 3 4 4 4 7 7 avem:

  • platourile 1 1 1 şi 4 4 4 ambele având lungimea 3;
  • platourile 7 7 (cel care începe în poziţia a patra) şi 7 7 (cel care începe pe poziţia a zecea), ambele având lungimea 2;
  • platoul 3 care are lungimea 1.

În schimb nu avem platoul 7 7 7 7 deoarece cele patru elemente egale cu 7 nu sunt pe poziţii consecutive!

Asupra unui şir se poate efectua următoarea operaţiune:

  1. se extrage un platou la alegere;
  2. se inserează platoul extras la pasul anterior într-o poziţie la alegere din şirul rezultat după extragere.

De exemplu, dacă avem următorul şir inițial: 2 2 5 0 5 8 8 8 4 9 9 9 0 0 2 2 8 extragem platoul 2 2 format din elementele aflate în penultima şi antepenultima poziţie şi obţinem şirul: 2 2 5 0 5 8 8 8 4 9 9 9 0 0 8

În şirul rezultat inserăm platoul 2 2 (pe care l-am extras în pasul anterior) în poziţia a doua şi obţinem şirul: 2 2 2 2 5 0 5 8 8 8 4 9 9 9 0 0 8.

Cerința

Să se scrie un program care citește un șir de n numere naturale din intervalul [0,10000] și un număr k și determină:

  1. lungimea maximă a unui platou care poate să apară în şir în urma efectuării operaţiunii de mai sus de maxim k ori
  2. elementul din care este format platoul obținut după cele k operațiuni
Date de intrare

Programul va citi:

  • pe prima linie un număr natural k;
  • pe a doua linie un număr natural n;
  • pe a treia linie un şir de n numere naturale separate prin câte un spaţiu.
  • pe a patra linie p, care reprezinta cerința; p poate fi 1 sau 2
Date de ieșire

Programul va afisa lungimea maximă a unui platou care poate să apară în şir în urma efectuării celor două operaţiuni de maxim k ori sau elementul din care este format platoul.

Restricții și precizări
  • 1 ≤ n ≤ 1000000
  • 1 ≤ k ≤ 100
  • pentru cerința 1 – 50% din punctaj
  • pentru cerința 2 – 50% din punctaj
  • dacă sunt mai multe platouri de lungime maxima se va afișa cel mai mare considera cel format din valoarea cea mai mare
  • toate testele au soluție
Exemplul 1

Intrare

2
16 
2 2 5 0 5 8 8 8 4 9 9 9 0 8 2 2
1 

Iesire

4
Exemplul 2

Intrare

2
16 
2 2 5 0 5 8 8 8 4 9 9 9 0 8 2 2
2

Iesire

8

Explicație

În urma executării celor două operațiuni pot să apară platouri de lungime maximă 4 în două moduri: 2 2 2 2 respectiv 8 8 8 8.

Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2024 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate