BTC

Time limit: 0.05s Memory limit: 16MB Input: Output:

Cerință

Înainte să pleci în vacanță, ți-ai notat pe o foaie de hârtie un șir de NN numere naturale pozitive: a1,a2,,aNa_1, a_2, \dots, a_N. Acestea reprezintă parola pentru portofelul tău de BITCOIN, care valorează aproximativ 10910^9 USD.

Când te-ai întors, ai realizat că nu-ți mai găsești foaia. Însă, nu toată speranța e pierdută, deoarece îti mai aduci aminte numărul NN și mai găsești numerele XX și YY care știi sigur că aparțin parolei. Ai decis să-ți scrii pe caiet toate proprietățile parolei de care ești sigur:

  1. Șirul conține exact NN numere;
  2. Numerele XX și YY aparțin parolei și X<YX \lt Y;
  3. Numerele din parolă sunt numere naturale pozitive mai mici sau egale ca 109 (1ai109)10^9 \ (1 \leq a_i \leq 10^9);
  4. Elementele șirului sunt ordonate strict crescător, iar diferența dintre două numere aflate pe poziții consecutive este constantă (a2a1=a3a2=...=aNaN1)(a_2-a_1=a_3-a_2=...=a_{N}-a_{N-1});
  5. Elementul maxim al parolei (ultimul element) trebuie să fie minim;

Scopul tău este să îți găsești parola pierdută și să îți recuperezi banii!

Date de intrare

Pe prima linie se găsește numărul TT (numărul de ordine al grupului de teste din care face parte testul).
Pe următoarea linie se găsesc trei numere naturale: N,X,YN, X, Y, cu semnificația din enunț.

Date de ieșire

Pe prima linie se vor găsi NN numere naturale, parola găsită. (numerele trebuie afișate în ordinea în care se găsesc în parolă).

Restricții și precizări

  • 0T60 \leq T \leq 6;
  • 2N100 0002 \leq N \leq 100 \ 000;
  • 1X<Y1091 \leq X \lt Y \leq 10^9;
  • 1ai1091 \leq a_i \leq 10^9;
  • În cazul în care există mai multe soluții care îndeplinesc toate condițiile din enunț, se poate afișa oricare;
  • Se garantează că există cel puțin un șir care îndeplinește toate condițiile;
  • Dacă șirul afișat îndeplinește toate condițiile, vei primi 100% din punctajul testului, dar dacă îndeplinește doar primele 4 condiții, procentajul punctajului va fi calculat după formulă: 0.751+SCSOD\frac {0.75}{1 + \frac{SC - SO}{D}} (SC=SC = ultimul element concurent, SO=SO = ulimul element optim, D=D = diferența dintre 2 elemente consecutive în șirul concurentului), altfel vei primi 0 puncte pe acel test;
  • Pentru citirea și afișarea rapidă, se recomandă folosirea acestor linii de cod la începutul funcției main:
ios::sync_with_stdio(false);  
cin.tie(NULL);  
cout.tie(NULL);  
# Punctaj Restricții
0 0 Exemple
1 10 a1=Xa_1 = X, aN=Ya_N = Y și N=YX+1N = Y-X+1
2 10 a1=Xa_1 = X și aN=Ya_N = Y
3 20 X=1X = 1
4 20 YX=Y-X = număr prim
5 20 1X<Y1061 \leq X \lt Y \leq 10^6
6 20 Nu există restricții suplimentare

Exemplu

stdin

0
4 10 20

stdout

5 10 15 20

Explicație

Pe prima linie se găsește numărul T=0T = 0, deoarece acesta este un exemplu.
Șirurile posibile care respectă primele 4 condiții sunt:

  • 10,20,30,40;10, 20, 30, 40;
  • 5,10,15,20;5, 10, 15, 20;
  • 10,15,20,25;10, 15, 20, 25;

Dintre acestea, cel cu ultimul element minim este al doilea șir. Deci, parola este șirul 5,10,15,205, 10, 15, 20.

Log in or sign up to be able to send submissions!