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 ≤ 1000
1 ≤ m ≤ n-2
- valorile scrise de Gigel pe cele
n
cartonaș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
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Cartonase2:
#include <iostream>
using namespace std;
int p, n, m , v[1005];
int main() {
cin >> p >> m;
n = p - m;
for (int i = 1; i <= n; ++i)
cin >> v[i];
for(int i = 1 ; i < n ; ++i)
for(int j = i + 1 ; j <= n ; ++j)
if(v[i] > v[j])
{
int aux = v[i];
v[i] = v[j];
v[j] = aux;
}
int r = (v[n] - v[1]) / (p - 1);
int x = v[1];
for(int i = 2; i <= n && m > 0 ; )
{
x += r;
if(x != v[i])
{
cout << x << " ";
m --;
}
else
i ++;
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #558 Cartonase2
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #558 Cartonase2 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!