# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
168473 | 2019-12-13T08:50:34 Z | achibasadzishvili | Gift (IZhO18_nicegift) | C++14 | 1629 ms | 172180 KB |
#include <bits/stdc++.h> #define ll long long #define f first #define s second #define pb push_back #define mp make_pair using namespace std; ll n,k,a[2000005],s,las,p,cur,maxi,l,r,mid,can; set<pair<ll,ll> >st; vector<vector<ll> >ans; vector<ll>g; int main(){ scanf("%I64d%I64d",&n,&k); bool ok = 1; for(int i=1; i<=n; i++){ scanf("%I64d",&a[i]); if(a[i] != a[1])ok = 0; s += a[i]; st.insert(mp(-a[i] , i)); } if(s % k){ cout << "-1"; return 0; } ll raod = s / k; ll sum = s; ll ra = 0; while(sum){ if((int)st.size() < k){ cout << "-1"; return 0; } p = 0,cur = 0; g.clear(); maxi = -(*st.begin()).f; for(set<pair<ll,ll> >::iterator it = st.begin(); it != st.end(); it++){ p++; if(p > k){ cur = (*it).s; break; } las = (*it).s; } l = 1 , r = a[las] , mid , can = 1; while(r >= l){ mid = (l + r) / 2; if(max(maxi - mid , a[cur]) * k <= sum - mid * k){ l = mid + 1; can = mid; } else { r = mid - 1; } } sum -= can * k; ra += k; p = 0; g.pb(can); for(set<pair<ll,ll> >::iterator it = st.begin(); it != st.end(); it++){ p++; if(p > k){ cur = (*it).s; break; } g.pb((*it).s); } for(int i=1; i<g.size(); i++){ st.erase(mp(-a[g[i]] , g[i])); a[g[i]]-=can; if(a[g[i]])st.insert(mp(-a[g[i]] , g[i])); } ans.pb(g); } printf("%d\n",(int)ans.size()); for(int i=0; i<ans.size(); i++){ for(int j=0; j<ans[i].size(); j++) printf("%I64d " , ans[i][j]); printf("\n"); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | n=4 |
2 | Correct | 2 ms | 376 KB | n=3 |
3 | Correct | 2 ms | 376 KB | n=3 |
4 | Correct | 2 ms | 376 KB | n=4 |
5 | Correct | 2 ms | 252 KB | n=4 |
6 | Correct | 2 ms | 256 KB | n=2 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | n=4 |
2 | Correct | 2 ms | 376 KB | n=3 |
3 | Correct | 2 ms | 376 KB | n=3 |
4 | Correct | 2 ms | 376 KB | n=4 |
5 | Correct | 2 ms | 252 KB | n=4 |
6 | Correct | 2 ms | 256 KB | n=2 |
7 | Correct | 2 ms | 256 KB | n=5 |
8 | Correct | 5 ms | 1016 KB | n=8 |
9 | Correct | 2 ms | 256 KB | n=14 |
10 | Correct | 2 ms | 256 KB | n=11 |
11 | Correct | 67 ms | 10604 KB | n=50000 |
12 | Correct | 58 ms | 9516 KB | n=50000 |
13 | Correct | 2 ms | 256 KB | n=10 |
14 | Correct | 3 ms | 504 KB | n=685 |
15 | Correct | 3 ms | 504 KB | n=623 |
16 | Correct | 3 ms | 504 KB | n=973 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | n=4 |
2 | Correct | 2 ms | 376 KB | n=3 |
3 | Correct | 2 ms | 376 KB | n=3 |
4 | Correct | 2 ms | 376 KB | n=4 |
5 | Correct | 2 ms | 252 KB | n=4 |
6 | Correct | 2 ms | 256 KB | n=2 |
7 | Correct | 2 ms | 256 KB | n=5 |
8 | Correct | 5 ms | 1016 KB | n=8 |
9 | Correct | 2 ms | 256 KB | n=14 |
10 | Correct | 2 ms | 256 KB | n=11 |
11 | Correct | 67 ms | 10604 KB | n=50000 |
12 | Correct | 58 ms | 9516 KB | n=50000 |
13 | Correct | 2 ms | 256 KB | n=10 |
14 | Correct | 3 ms | 504 KB | n=685 |
15 | Correct | 3 ms | 504 KB | n=623 |
16 | Correct | 3 ms | 504 KB | n=973 |
17 | Correct | 3 ms | 504 KB | n=989 |
18 | Correct | 3 ms | 376 KB | n=563 |
19 | Correct | 3 ms | 504 KB | n=592 |
20 | Correct | 3 ms | 504 KB | n=938 |
21 | Correct | 3 ms | 504 KB | n=747 |
22 | Correct | 3 ms | 504 KB | n=991 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1629 ms | 172180 KB | Added number should be positive |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | n=4 |
2 | Correct | 2 ms | 376 KB | n=3 |
3 | Correct | 2 ms | 376 KB | n=3 |
4 | Correct | 2 ms | 376 KB | n=4 |
5 | Correct | 2 ms | 252 KB | n=4 |
6 | Correct | 2 ms | 256 KB | n=2 |
7 | Correct | 2 ms | 256 KB | n=5 |
8 | Correct | 5 ms | 1016 KB | n=8 |
9 | Correct | 2 ms | 256 KB | n=14 |
10 | Correct | 2 ms | 256 KB | n=11 |
11 | Correct | 67 ms | 10604 KB | n=50000 |
12 | Correct | 58 ms | 9516 KB | n=50000 |
13 | Correct | 2 ms | 256 KB | n=10 |
14 | Correct | 3 ms | 504 KB | n=685 |
15 | Correct | 3 ms | 504 KB | n=623 |
16 | Correct | 3 ms | 504 KB | n=973 |
17 | Correct | 3 ms | 504 KB | n=989 |
18 | Correct | 3 ms | 376 KB | n=563 |
19 | Correct | 3 ms | 504 KB | n=592 |
20 | Correct | 3 ms | 504 KB | n=938 |
21 | Correct | 3 ms | 504 KB | n=747 |
22 | Correct | 3 ms | 504 KB | n=991 |
23 | Incorrect | 1629 ms | 172180 KB | Added number should be positive |
24 | Halted | 0 ms | 0 KB | - |