제출 #236894

#제출 시각아이디문제언어결과실행 시간메모리
236894DanShadersHokej (COCI17_hokej)C++17
48 / 120
173 ms10808 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; #define all(x) begin(x), end(x) #define x first #define y second typedef long long ll; typedef long double ld; template<typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; template<typename T> using normal_queue = priority_queue<T, vector<T>, greater<T>>; const int MAX_N = 5e5 + 10; vector<pair<int, pair<int, int>>> ans; int endAt[6]; int current[6]; int id[6]; pair<int, pair<int, int>> players[MAX_N]; signed main() { ios::sync_with_stdio(0); cin.tie(0); int m, n; cin >> m >> n; for (int i = 0; i < n; ++i) cin >> players[i].x >> players[i].y.x, players[i].y.y = i; sort(all(players)); reverse(all(players)); int ptr = 0; int64_t res = 0; for (int i = 0; i < m; ++i) { for (int j = 0; j < 6; ++j) { if (endAt[j] != i) continue; assert(ptr != n); endAt[j] = players[ptr].y.x + i; ans.push_back({i, {id[j] + 1, players[ptr].y.y + 1}}); current[j] = players[ptr].x; id[j] = players[ptr].y.y; ++ptr; } res += accumulate(current, current + 6, 0ll); } cout << res << "\n"; int last = 1; for (auto p : ans) { if (p.x == 0) { cout << p.y.y << " "; continue; } if (last) { cout << "\n" << ans.size() - 6 << "\n"; } cout << p.x << " " << p.y.x << " " << p.y.y << "\n"; last = 0; } if (last) cout << "\n0"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...