Revizia anterioară Revizia următoare
Fișierul intrare/ieșire | shopping.in, shopping.out | Sursă | Concurs Shumen juniori 2017 |
---|---|---|---|
Autor | autor necunoscut | Adăugată de |
|
Timp de execuție pe test | 3 sec | Limită de memorie | 32768 KB |
Scorul tău | N/A | Dificultate | N/A |
Vezi soluțiile trimise | Statistici
Shopping
Ieri a fost ziua de naștere a lui Deni și a primit o mulțime de cadouri de la mai mulți prieteni. Se poate considera că datorită cadourilor ea are un număr nelimitat de produse care sunt de asemenea disponibile si la Mall. Deni decide să vândă o parte dintre ele pentru a obține bani. Cu acești bani ea va merge la cumpărături in Mall cu prietenii, dar va cumpăra numai produse diferite de cele pe care le-a vândut. Deni vrea sa obțină o anumită sumă de bani in final. ( Dacă aceasta se poate realiza doar vânzând o parte dintre cadouri, atunci ea va amâna cumpărăturile pentru altă dată. Deoarece are o mulțime de produse de diferite prețuri, îi este greu sa decidă ce tipuri de produse să vândă si ce tipuri să cumpere, asa incat la final va avea suma de bani pe care si-o doreste.
Presupunem că există k produse in magazin, care au prețurile a1,a2, a3,.....,ak leva (moneda Bulgara), respectiv că fata dorește să ramână la final cu exact n leve. Trebuie sa afișați de câte ori ea trebuie sa cumpere sau să vânda fiecare tip de produs (cumpărarea este marcată ca număr negativ si vânzarea ca număr pozitiv ), astfel încât Deni să obțină in final n leva. Programul vostru va rezolva t teste la o rulare. Deoarece numere din output pot fi foarte mari, fiecare număr va fi afișat ca produs a cel mult 100 de numere. Dacă există mai multe soluții, veți afișa oricare din ele. Dacă nu există soluție, veți printa textul „No solutions“ (fără ghilimele).
Date de intrare
Fișierul de intrare shopping.in conține pe prima linie este un singur număr t care reprezintă numărul de teste pe care îl va procesa programul. Fiecare test este descris pe 3 linii. Prima linie va conține numărul natural, k, a doua linie va conține numere naturale a1,a2, a3,.....,ak reprezentând prețurile tipurilor de produse din Mall. A treia linie conține numărul natural n – câți leva dorește să obțină Deni la final.
Date de ieșire
În fișierul de ieșire shopping.out se va afișa texul „No solutions“ (fără ghilimele) dacă problema nu are soluție, sau, în cazul în care problema are soluție : k numere întregi ( fiecare dintre acestea trebuie să fie afișate sub forma num1 * num2 ... nump)care descriu de câte ori Dani a cumpărat sau a vândut un produs(dacă numărul este negativ atunci ea a cumpărat acel tip de produs iar dacă este pozitiv atunci l-a vândut).
Restricții
- 1 ≤ t ≤ 2
- 2 ≤ k ≤ 100000
- 1 ≤ a1,a2, a3,.....,ak ≤ 1018
- 1 ≤ n ≤ 1018
- 1 ≤ p ≤ 100
- -109 ≤ num1 ≤ 109
- 0 ≤ numi ≤ 109
- 2 ≤ i ≤ p
Subtask | Puncte | k | Observații |
---|---|---|---|
1 |
10 |
k = 2 |
Petru fiecare test t = 1. |
2 |
20 |
k = 3 |
Pentru fiecare test t = 1. |
3 |
10 |
4 ≤ k ≤ 1000 |
Există printre numerele a1,a2, a3,.....,ak cel puțin două numere relativ prime (adică singurul întreg pozitiv care le divide pe ambele este 1).
Pentru fiecare test t = 2. |
4 |
60 |
4 ≤ k ≤ 105 |
Pentru fiecare test t = 2. |
Exemple
shopping.in | shopping.out | Explicații |
---|---|---|
1 2 3 5 11 |
2 1 |
Dacă Deni vinde primul tip de produs de două ori și și al doilea produs o dată atunci ea obține 2 ∗ 3 + 5 = 11 leva care este exact suma dorită. Observați că ar fi putut deasemenea să vândă de 7 ori produsul de tip 1 și sa cumpere de două ori produsul de tip 2 obținând deasemenea o soluție validă. |
10 1 3 7 4 6 8 10 14 2 6 |
5 |
Cea mai lungă subsecvență crescătoare este lungime cinci (4 6 8 10 14). |