Submission #1312935

#TimeUsernameProblemLanguageResultExecution timeMemory
1312935arman.khachatryanGift (IZhO18_nicegift)C++20
0 / 100
21 ms8216 KiB
#include <bits/stdc++.h> using namespace std; struct node{ int a, b, val; }; int main() { int n, k; cin>>n>>k; pair<int, int> a[n]; for(int i=0; i<n; i++){ cin>>a[i].first; a[i].second=i+1; } sort(a, a+n, [&](pair<int, int> x, pair<int, int> y){ return x.first<y.first; }); int sum=0; for(int i=0; i<n-1; i++){ sum+=a[i].first; } if(sum<a[n-1].first || (sum+a[n-1].first)%2==1){ cout<<-1; }else{ sum-=a[n-1].first; vector<node> v; while(sum>0){ if(sum>=2*a[n-3].first){ sum-=2*a[n-3].first; v.push_back({a[n-2].second, a[n-3].second, a[n-3].first}); a[n-2].first-=a[n-3].first; a[n-3].first=0; }else{ v.push_back({a[n-2].second, a[n-3].second, sum/2}); a[n-2].first-=sum/2; a[n-3].first-=sum/2; break; } for(int i=n-3; i>0; i--){ swap(a[i], a[i-1]); } for(int i=n-2; i>0; i--){ if(a[i].first>=a[i-1].first){ break; } swap(a[i], a[i-1]); } } for(int i=0; i<n-1; i++){ if(a[i].first>0){ cout<<a[i].first<<" "<<a[i].second<<" "<<a[n-1].second<<'\n'; } } for(auto& it : v){ cout<<it.val<<" "<<it.a<<" "<<it.b<<'\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...