fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. ios::sync_with_stdio(false);
  6. cin.tie(nullptr);
  7. long long B, q;
  8. cin >> B >> q;
  9. vector<long long> a(B);
  10. for (long long i = 0; i < B; ++i){
  11. cin >> a[i];
  12. }
  13. vector<long long> qq(q);
  14. for (long long i = 0; i < q; ++i){
  15. cin >> qq[i];
  16. }
  17. long long t = 0;
  18. for (long long i = 0; i < B; ++i)
  19. t += i * a[i];
  20.  
  21. long long m = t % (B - 1);
  22. if (m != 0) {
  23. bool found = false;
  24. for (long long c = 1; c < B; ++c) {
  25. if (a[c] > 0 && c % (B - 1) == m) {
  26. a[c]--;
  27. found = true;
  28. break;
  29. }
  30. }
  31. }
  32. vector<long long> p;
  33. for (long long i = B - 1; i >= 0; --i) {
  34. for (long long j = 0; j < a[i]; ++j)
  35. p.push_back(i);
  36. }
  37. bool l = true;
  38. for (auto d : p){
  39. if (d != 0){
  40. l = false;
  41. }
  42. if (l){
  43. p = {0};
  44. }
  45. }
  46.  
  47.  
  48. long long n = p.size();
  49. for (long long i = 0; i < q; ++i) {
  50. long long k = qq[i];
  51. if (k >= n){
  52. cout << -1 << endl;
  53. }
  54. else{
  55. cout << p[n - 1 - k] << endl;
  56. }
  57. }
  58.  
  59. return 0;
  60. }
  61.  
Success #stdin #stdout 0.01s 5280KB
stdin
4 4
1 2 1 1
4
3
0
1
stdout
-1
3
0
1