Submission #1133144

#TimeUsernameProblemLanguageResultExecution timeMemory
1133144AgageldiGift (IZhO18_nicegift)C++20
0 / 100
446 ms371132 KiB
/* TASK: siuu */ #include <bits/stdc++.h> using namespace std; #define ll long long #define N 4000005 #define ff first #define ss second #define pb push_back #define sz(s) (int)s.size() #define rep(c, a, b) for(c = a; c <= b; c++) ll n, t, m, l, jog; deque <ll> v, ans; pair <ll,ll> a[N]; vector <deque<ll>> answer; int main () { ios::sync_with_stdio(0);cin.tie(0); cin >> n >> m; for(int i = 1;i <= n; i++) { cin >> a[i].ff; if(a[1].ff != a[i].ff) t = 1; a[i].ss = i; } if(!t) { if(n % m) return cout << "-1\n", 0; } l = 1; sort(a + 1, a + n + 1); for(int i = 1; i <= n; i++) { v.pb(a[i].ss); if(sz(v) == m) { ans.pb(a[l].ff); answer.pb(v); for(int j = l + 1; j <= i; j++) { a[j].ff -= a[l].ff; } a[l].ff = 0; while(l <= n && a[l].ff == 0) { v.pop_front(); l++; } } } if(l != n + 1) { cout << "-1\n"; return 0; } t = sz(answer); if(t * m > 3e6) { cout << "-1\n"; return 0; } cout << sz(answer) << '\n'; for(auto i : answer) { cout << ans[0] << " "; for(auto j : i) { cout << j << " "; } ans.pop_front(); cout << '\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...