# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
65185 | kingpig9 | Gift (IZhO18_nicegift) | C++11 | 471 ms | 23944 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int MAXN = 2e6 + 10;
#define debug(...) fprintf(stderr, __VA_ARGS__)
#define all(v) (v).begin(), (v).end()
#define fi first
#define se second
#define fillchar(a, s) memset((a), (s), sizeof(a))
void kill() {
puts("-1");
exit(0);
}
int N, K;
ll A[MAXN], suma;
namespace subtask3 {
void go() {
priority_queue<pll> pq;
for (int i = 0; i < N; i++) {
pq.push(pll(A[i], i));
}
vector<vector<ll>> ans;
while (!pq.empty()) {
vector<ll> vnew;
for (int i = 0; i < K; i++) {
if (pq.empty()) {
kill();
}
ll ind = pq.top().se;
pq.pop();
vnew.push_back(ind);
}
ans.push_back(vnew);
for (ll ind : vnew) {
if (--A[ind]) {
pq.push(pll(A[ind], ind));
}
}
}
printf("%lld\n", suma / K);
for (vector<ll> v : ans) {
assert(v.size() == K);
printf("1");
for (ll x : v) {
printf(" %lld", x + 1);
}
puts("");
}
}
}
namespace subtask4 {
void go() {
ll g = __gcd(N, K);
ll v = A[0] * g / K;
ll nturns = N / g;
printf("%lld\n", nturns);
int ptr = 0;
for (ll i = 0; i < nturns; i++) {
printf("%lld", v);
for (int j = 0; j < K; j++) {
printf(" %d", ptr + 1);
ptr = (ptr + 1) % N;
}
puts("");
}
}
}
int main() {
scanf("%d %d", &N, &K);
for (int i = 0; i < N; i++) {
scanf("%lld", &A[i]);
suma += A[i];
}
if (suma % K != 0) {
kill();
}
if (suma <= 1e5) {
subtask3::go();
} else {
subtask4::go();
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |