fork download
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. long long int t1,tab1[10],i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,j1,j2,j3,j4,j5,j6,j7,j8,j9,j10,k1,k2;
  6. long long int s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,w1,w2;
  7. scanf("%lld",&t1);
  8. while(t1--)
  9. {
  10. w1=0,w2=0;
  11. for(i1=0;i1<10;i1++) scanf("%lld",&tab1[i1]);
  12. scanf("%lld",&k1);
  13. for(i1=0;i1<10;i1++)
  14. {
  15. s1=tab1[0]*i1;
  16. w1+=s1;
  17. if(w1>k1) i1=10;
  18. else
  19. {
  20. for(i2=0;i2<10;i2++)
  21. {
  22. if(i2!=i1)
  23. {
  24. s2=tab1[1]*i2;
  25. w1+=s2;
  26. if(w1>k1) i2=10;
  27. else
  28. {
  29. for(i3=0;i3<10;i3++)
  30. {
  31. if(i3!=i2 && i3!=i1)
  32. {
  33. s3=tab1[2]*i3;
  34. w1+=s3;
  35. if(w1>k1)
  36. {
  37. i3=10;
  38. i2=10;
  39. }
  40. else
  41. {
  42. for(i4=0;i4<10;i4++)
  43. {
  44. if(i4!=i3 && i4!=i2 && i4!=i1)
  45. {
  46. s4=tab1[3]*i4;
  47. w1+=s4;
  48. if(w1>k1)
  49. {
  50. i4=10;
  51. i3=10;
  52. i2=10;
  53. }
  54. else
  55. {
  56. for(i5=0;i5<10;i5++)
  57. {
  58. if(i5!=i4 && i5!=i3 && i5!=i2 && i5!=i1)
  59. {
  60. s5=tab1[4]*i5;
  61. w1+=s5;
  62. if(w1>k1)
  63. {
  64. i5=10;
  65. i4=10;
  66. i3=10;
  67. i2=10;
  68. }
  69. else
  70. {
  71. for(i6=0;i6<10;i6++)
  72. {
  73. if(i6!=i5 && i6!=i4 && i6!=i3 && i6!=i2 && i6!=i1)
  74. {
  75. s6=tab1[5]*i6;
  76. w1+=s6;
  77. if(w1>k1)
  78. {
  79. i6=10;
  80. i5=10;
  81. i4=10;
  82. i3=10;
  83. i2=10;
  84. }
  85. else
  86. {
  87. for(i7=0;i7<10;i7++)
  88. {
  89. if(i7!=i6 && i7!=i5 && i7!=i4 && i7!=i3 && i7!=i2 && i7!=i1)
  90. {
  91. s7=tab1[6]*i7;
  92. w1+=s7;
  93. if(w1>k1)
  94. {
  95. i7=10;
  96. i6=10;
  97. i5=10;
  98. i4=10;
  99. i3=10;
  100. i2=10;
  101. }
  102. else
  103. {
  104. for(i8=0;i8<10;i8++)
  105. {
  106. if(i8!=i7 && i8!=i6 && i8!=i5 && i8!=i4 && i8!=i3 && i8!=i2 && i8!=i1)
  107. {
  108. s8=tab1[7]*i8;
  109. w1+=s8;
  110. if(w1>k1)
  111. {
  112. i8=10;
  113. i7=10;
  114. i6=10;
  115. }
  116. else
  117. {
  118. for(i9=0;i9<10;i9++)
  119. {
  120. if(i9!=i8 && i9!=i7 && i9!=i6 && i9!=i5 && i9!=i4 && i9!=i3 && i9!=i2 && i9!=i1)
  121. {
  122. s9=tab1[8]*i9;
  123. w1+=s9;
  124. if(w1>k1) i9=10;
  125. else
  126. {
  127. for(i10=0;i10<10;i10++)
  128. {
  129. if(i10!=i9 && i10!=i8 && i10!=i7 && i10!=i6 && i10!=i5 && i10!=i4 && i10!=i3 && i10!=i2 && i10!=i1)
  130. {
  131. s10=tab1[9]*i10;
  132. w1+=s10;
  133. if(w1>k1) i10=10;
  134. else
  135. {
  136. if(w1>w2)
  137. {
  138. w2=w1;
  139. j1=i1;
  140. j2=i2;
  141. j3=i3;
  142. j4=i4;
  143. j5=i5;
  144. j6=i6;
  145. j7=i7;
  146. j8=i8;
  147. j9=i9;
  148. j10=i10;
  149. if(w2==k1)
  150. {
  151. i1=10;
  152. i2=10;
  153. i3=10;
  154. i4=10;
  155. i5=10;
  156. i6=10;
  157. i7=10;
  158. i8=10;
  159. i9=10;
  160. i10=10;
  161. }
  162. }
  163. }
  164. w1-=s10;
  165. }
  166. }
  167. }
  168. w1-=s9;
  169. }
  170. }
  171. }
  172. w1-=s8;
  173. }
  174. }
  175. }
  176. w1-=s7;
  177. }
  178. }
  179. }
  180. w1-=s6;
  181. }
  182. }
  183. }
  184. w1-=s5;
  185. }
  186. }
  187. }
  188. w1-=s4;
  189. }
  190. }
  191. }
  192. w1-=s3;
  193. }
  194. }
  195. }
  196. w1-=s2;
  197. }
  198. }
  199. }
  200. w1-=s1;
  201. }
  202. if(w2!=0) printf("%lld %lld %lld %lld %lld %lld %lld %lld %lld %lld\n",j1,j2,j3,j4,j5,j6,j7,j8,j9,j10);
  203. else printf("-1\n");
  204. }
  205.  
  206.  
  207. return 0;
  208. }
Success #stdin #stdout 0.03s 4496KB
stdin
2
1 2 3 4 5 6 7 8 9 10
200
1 2 3 4 5 6 7 8 9 10
100
stdout
2 6 8 9 7 5 4 3 1 0
-1