fbpx

Problema #383 – inlocuireK – Rezolvari PBInfo

de Mihai-Alexandru

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
#include <bits/stdc++.h>
using namespace std;
int multiplu(int n, int k)
{
    int r = n % k;
    if(r <= k / 2) return n - r;
    else return n + k - r;
}

int main()
{
    int k , n , a[201] , v[201];
    cin >> k >> n;
    for(int i = 0 ; i < n; ++i)
    {
        cin >> a[i];
        v[i] = multiplu(a[i],k);
    }
    for(int i = n-1 ; i >= 0 ; --i)
    {
        cout << v[i] << ' ';
    }
}
Comentarii

S-ar putea sa iti placa