#include<bits/stdc++.h>
#define ll long long
#define fr first
#define se second
using namespace std;
deque< pair<ll, ll> > d;
vector< pair<ll,pair< ll, ll> > > ans;
int main(){
ll n, k;
cin>>n>>k;
for( ll i =1 ; i <= n ; i ++ ){
ll x;
cin>>x;
d.push_back({x,i});
}
sort(d.begin(),d.end());
while(d.size()>1){
ll i = d.size()-1;
ll j = d.size()-2;
if( d[i].fr - d[j].fr > 0 ){
ll x = d[i].fr-1;
ll y = d[j].fr-1;
ll l = d[i].se;
ll r = d[j].se;
d.pop_back();
d.pop_back();
if( x > 0 )
d.push_back({x,l});
if( y > 0 )
d.push_back({y,r});
ans.push_back({1,{l,r}});
sort(d.begin(),d.end());
}
else if( d[i].fr - d[j].fr == 0 ) {
ll x = d[i].fr;
ll y = d[j].fr;
ll l = d[i].se;
ll r = d[j].se;
d.pop_back();
d.pop_back();
if( x > 0 )
d.push_back({x,l});
if( y > 0 )
d.push_back({y,r});
ans.push_back({1,{l,r}});
sort(d.begin(),d.end());
}
/// cout<<d.size()<<endl;
}
if( d.size() == 1 ){
cout<<-1;
return 0;
}
cout<<ans.size()<<endl;
for( ll i = 0; i < ans.size(); i ++ ){
cout<<ans[i].fr<<' '<<ans[i].se.fr<<' '<<ans[i].se.se<<endl;
}
}
Compilation message
nicegift.cpp: In function 'int main()':
nicegift.cpp:55:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for( ll i = 0; i < ans.size(); i ++ ){
~~^~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2052 ms |
394668 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2052 ms |
394668 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2052 ms |
394668 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2028 ms |
394668 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2052 ms |
394668 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |