제출 #893221

#제출 시각아이디문제언어결과실행 시간메모리
893221vjudge1Gift (IZhO18_nicegift)C++17
0 / 100
271 ms36840 KiB
// 以上帝的名义 // 候选硕士 #include <bits/stdc++.h> #ifdef local #include "algo/debug.h" #else #define dbg(x...) 0 #endif using namespace std ; using ll = long long ; int32_t main() { cin.tie(0)->sync_with_stdio(false) ; int n , k ; cin >> n >> k ; vector<ll> a(n) ; for (ll &i : a) cin >> i ; priority_queue<pair<ll,ll>> q ; for (int i = 0 ; i < n ; i++) { q.push({a[i], i}) ; } set<ll> st(a.begin(), a.end()) ; if (n % k) { cout << -1 << "\n" ; return 0 ; } if (st.size() ==1) { cout << n / k << "\n" ; int ptr = 1 ; int x = a[0] ; for (int i = 1 ; i <= n / k ; i++) { cout << x << ' ' ; for (int j = ptr ; j < ptr + k ; j++) cout << j << ' ' ; cout << "\n" ; ptr += k ; } return 0 ; } dbg(q) ; vector<vector<int>> res ; while (q.size() >= k) { vector<int> cur ; for (int i = 0 ; i < k ; i++) { auto [value, ind] = q.top() ; q.pop() ; cur.push_back(ind) ; } sort(cur.begin(), cur.end(), [&](int i, int j) { return a[i] < a[j] ; }) ; int mn = a[cur[0]] ; for (int i : cur) { a[i] -= mn ; if (a[i]> 0) { q.push({a[i], i}) ; } } cur.push_back(mn) ; res.push_back(cur) ; } if (q.size()) { cout << -1 << "\n" ; return 0 ; } cout << res.size() << "\n" ; for (auto i : res) { cout << i.back() << ' ' ; i.pop_back() ; for (int j : i) cout << j + 1 << ' ' ; cout << "\n" ; } return 0 ; } // 希望白银

컴파일 시 표준 에러 (stderr) 메시지

nicegift.cpp: In function 'int32_t main()':
nicegift.cpp:8:19: warning: statement has no effect [-Wunused-value]
    8 | #define dbg(x...) 0
      |                   ^
nicegift.cpp:40:5: note: in expansion of macro 'dbg'
   40 |     dbg(q) ;
      |     ^~~
nicegift.cpp:42:21: warning: comparison of integer expressions of different signedness: 'std::priority_queue<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   42 |     while (q.size() >= k) {
      |            ~~~~~~~~~^~~~
#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...