Submission #1358047

#TimeUsernameProblemLanguageResultExecution timeMemory
1358047avighnaCookies (JOI23_cookies)C++20
7 / 100
38 ms1152 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
  cin.tie(nullptr)->sync_with_stdio(false);

  int n, m;
  cin >> n;
  vector<int> a(n);
  for (int &i : a) { cin >> i; }
  cin >> m;
  vector<int> b(m);
  for (int &i : b) { cin >> i; }

  // m == 1
  int tot_cookies = accumulate(a.begin(), a.end(), 0);
  m = b[0];
  if (tot_cookies % m != 0) {
    cout << "-1\n";
    return 0;
  }

  vector<vector<int>> ans;
  for (int i = 0; i < tot_cookies / m; ++i) {
    vector<int> box;
    vector<int> ord(n);
    iota(ord.begin(), ord.end(), 0);
    sort(ord.begin(), ord.end(), [&](int i, int j) { return a[i] > a[j]; });
    for (int &type : ord) {
      if (a[type] == 0 || box.size() == m) { break; }
      box.push_back(type);
      a[type]--;
    }
    if (box.size() != m) {
      cout << "-1\n";
      return 0;
    }
    ans.push_back(box);
  }

  cout << ans.size() << '\n';
  for (auto &box : ans) {
    cout << box.size() << ' ';
    for (int &i : box) { cout << i + 1 << ' '; }
    cout << '\n';
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...