답안 #335291

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
335291 2020-12-11T20:37:12 Z limabeans Gift (IZhO18_nicegift) C++17
18 / 100
2000 ms 237392 KB
#include <bits/stdc++.h>
using namespace std;

template<typename T>
void out(T x) { cout << x << endl; exit(0); }
#define watch(x) cout << (#x) << " is " << (x) << endl





using ll = long long;







int main() {
    ios_base::sync_with_stdio(false); cin.tie(0);  cout.tie(0);


    ll n,k;
    cin>>n>>k;
    assert(k==2);
    priority_queue<pair<ll,int>> pq;
    ll sum=0;
    for (int i=1; i<=n; i++) {
	ll x;
	cin>>x;
	sum += x;
	pq.push({x,i});
    }

    if (sum%k) out(-1);

    vector<vector<ll>> w;

    while (pq.size()) {
	vector<pair<ll,int>> tmp;
	for (int i=0; i<k; i++) {
	    if (pq.empty()) out(-1);
	    tmp.push_back(pq.top());
	    pq.pop();
	}
	ll lo = (pq.empty() ? 0 : pq.top().first);
	ll gap = max(1ll,tmp.back().first-lo);


	vector<ll> inds;
	for (auto p: tmp) {
	    inds.push_back(p.second);
	    p.first -= gap;
	    if (p.first>0) {
		pq.push(p);
	    }
	}

	inds.push_back(gap);
	w.push_back(inds);
    }

    cout<<w.size()<<"\n";
    for (auto p: w) {
	ll gap = p.back();
	p.pop_back();
	cout<<gap<<" ";
	for (ll i: p) cout<<i<<" ";
	cout<<"\n";
    }
    
    
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB n=4
2 Correct 0 ms 364 KB n=3
3 Correct 0 ms 364 KB n=3
4 Correct 0 ms 364 KB n=4
5 Correct 1 ms 364 KB n=4
6 Correct 0 ms 364 KB n=2
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB n=4
2 Correct 0 ms 364 KB n=3
3 Correct 0 ms 364 KB n=3
4 Correct 0 ms 364 KB n=4
5 Correct 1 ms 364 KB n=4
6 Correct 0 ms 364 KB n=2
7 Correct 0 ms 364 KB n=5
8 Correct 1 ms 364 KB n=8
9 Correct 10 ms 1212 KB n=14
10 Correct 5 ms 748 KB n=11
11 Correct 30 ms 3432 KB n=50000
12 Correct 43 ms 4452 KB n=50000
13 Correct 25 ms 2872 KB n=10
14 Correct 33 ms 3232 KB n=685
15 Correct 35 ms 3360 KB n=623
16 Correct 20 ms 2084 KB n=973
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB n=4
2 Correct 0 ms 364 KB n=3
3 Correct 0 ms 364 KB n=3
4 Correct 0 ms 364 KB n=4
5 Correct 1 ms 364 KB n=4
6 Correct 0 ms 364 KB n=2
7 Correct 0 ms 364 KB n=5
8 Correct 1 ms 364 KB n=8
9 Correct 10 ms 1212 KB n=14
10 Correct 5 ms 748 KB n=11
11 Correct 30 ms 3432 KB n=50000
12 Correct 43 ms 4452 KB n=50000
13 Correct 25 ms 2872 KB n=10
14 Correct 33 ms 3232 KB n=685
15 Correct 35 ms 3360 KB n=623
16 Correct 20 ms 2084 KB n=973
17 Runtime error 1 ms 492 KB Execution killed with signal 6 (could be triggered by violating memory limits)
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2097 ms 237392 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB n=4
2 Correct 0 ms 364 KB n=3
3 Correct 0 ms 364 KB n=3
4 Correct 0 ms 364 KB n=4
5 Correct 1 ms 364 KB n=4
6 Correct 0 ms 364 KB n=2
7 Correct 0 ms 364 KB n=5
8 Correct 1 ms 364 KB n=8
9 Correct 10 ms 1212 KB n=14
10 Correct 5 ms 748 KB n=11
11 Correct 30 ms 3432 KB n=50000
12 Correct 43 ms 4452 KB n=50000
13 Correct 25 ms 2872 KB n=10
14 Correct 33 ms 3232 KB n=685
15 Correct 35 ms 3360 KB n=623
16 Correct 20 ms 2084 KB n=973
17 Runtime error 1 ms 492 KB Execution killed with signal 6 (could be triggered by violating memory limits)
18 Halted 0 ms 0 KB -