제출 #511078

#제출 시각아이디문제언어결과실행 시간메모리
511078MazaalaiGift (IZhO18_nicegift)C++17
18 / 100
2101 ms211348 KiB
#include <bits/stdc++.h> #define pb push_back #define ff first #define ss second #define LLA(x) x.rbegin(),x.rend() #define print(x) for(auto el:x)cout<<el<<' ';cout<<"\n"; #define printPII(x) for(auto [a,b]:x)cout<<a<<","<<b<<' ';cout<<'\n'; using namespace std; using PII = pair <int, int>; int n, k; bool impossible; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); cin >> n >> k; vector <vector <int> > ans; set <PII> bfs; for (int i = 1; i <= n; i++) { int x; cin >> x; bfs.insert({x, i}); } while(1) { auto it = bfs.rbegin(); PII x = *it; bfs.erase(bfs.lower_bound(x)); auto it1 = bfs.rbegin(); PII y = *it1; bfs.erase(bfs.lower_bound(y)); if (x.ff <= 0 && y.ff <= 0) break; ans.pb({1, x.ss, y.ss}); x.ff--, y.ff--; if (x.ff < 0 || y.ff < 0) impossible = 1; bfs.insert(x); bfs.insert(y); } // int dbg = 0; if (impossible) { cout << "-1\n"; return 0; } cout << ans.size() << '\n'; for (auto el : ans) { print(el); } }
#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...