Cerința
Supărat că Gigel a reușit, cu ajutorul vostru ( vezi problema Cartonașe ), să refacă progresia aritmetică scrisă pe cele n cartonașe, maleficul Costel este hotărât să intervină din nou.
Astfel, observă că Gigel a notat din nou pe n cartonașe cei n termeni consecutivi ai unei progresii aritmetice. Profitând de lipsa acestuia, Costel a ascuns un număr oarecare de cartonașe și le-a amestecat pe celelalte.
La întoarcere, Gigel constată lipsa a m cartonașe și vă roagă să-l ajutați să afle care sunt valorile scrise pe cartonașele care lipsesc.
Date de intrare
Programul citește de la tastatură numerele n m, cu semnificația de mai sus, apoi n-m numere naturale, reprezentând valorile scrise pe cartonașele care nu au fost ascunse.
Date de ieșire
Programul va afișa pe ecran m numere ordonate crescător, separate prin exact un spaţiu, reprezentând valorile scrise pe cartonașele ascunse.
Restricții și precizări
4 ≤ n ≤ 10001 ≤ m ≤ n-2- valorile scrise de Gigel pe cele
ncartonașe1.000.000.000 - Costel nu va lua niciodată primul sau ultimul cartonaș
Exemplu
Intrare
6 2 13 19 7 4
Ieșire
10 16
Explicație
Cele șase numere scrise de Gigel erau 4 7 10 13 16 19. Dintre acestea, lipsesc două, și anume 10 și 16.
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n , a[1001] , m;
cin >> n >> m;
n-=m;
for(int i = 0 ; i < n ; ++i)
cin >> a[i];
sort(a , a+n);
int r = (a[n-1]-a[0])/(n+m-1) , p = 1;
int x = a[0];
for(int i = 0 ; i < n + m - 1 ; ++i)
{
x+=r;
if(x!=a[p]) cout << x << " ";
else p++;
}
}