# PBinfo #383 – inlocuireK – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerinţa
Se dă un număr natural nenul k și vector cu n numere  naturale. Să se înlocuiască fiecare element cu multiplul lui k cel mai apropiat de el și să se afișeze elementele astfel obținute în ordine inversă.

Date de intrare
Programul citește de la tastatură numerele k și n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.

Date de ieşire
Programul afișează pe ecran elementele vectorului, după înlocuire, în ordine inversă, separate prin exact un spațiu.

Restricţii şi precizări

1 ≤ n ≤ 200
1 ≤ k ≤ 100
elementele vectorului vor fi cuprinse între 1 și 1.000.000
dacă pentru un element al vectorului există mai multi cei mai apropiați multipli ai lui k, elementul va fi înlocui cu cel mai mic dintre aceștia

Exemplu:
Intrare

5 4
17 14 24 25
Ieșire

25 25 15 15

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    int n, k, v[222];
    cin >> k >> n;
    for (int i = 0; i < n; ++i)
        cin >> v[i];
    for (int i = 0; i < n; ++i) {
        int a = v[i] / k * k;
        int b = a + k;
        if (v[i] - a <= b - v[i]) v[i] = a;
        else v[i] = b;
    } for (int i = n - 1; i >= 0; -- i)
        cout << v[i] << " ";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/383)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/383/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-383/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
