Submission #69581443
Source Code Expand
Copy
#include <stdio.h>#include <stdlib.h>#include <inttypes.h>int qcnt = 0;struct elem_s {int64_t t;int id;} q[312345 * 2];void qadjust(int node) {for (;;) {int minidx = node;int i;for (i = 1; i <= 2; i++) {int c = node * 2 + i;if (c < qcnt && q[c].t < q[minidx].t) minidx = c;}if (minidx == node) {if (node == 0) return;node = (node - 1) / 2;
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
int qcnt = 0;
struct elem_s {
int64_t t;
int id;
} q[312345 * 2];
void qadjust(int node) {
for (;;) {
int minidx = node;
int i;
for (i = 1; i <= 2; i++) {
int c = node * 2 + i;
if (c < qcnt && q[c].t < q[minidx].t) minidx = c;
}
if (minidx == node) {
if (node == 0) return;
node = (node - 1) / 2;
} else {
struct elem_s temp = q[node];
q[node] = q[minidx];
q[minidx] = temp;
node = minidx;
}
}
}
void qadd(int64_t t, int id) {
q[qcnt++] = (struct elem_s){ t, id };
qadjust(qcnt - 1);
}
struct elem_s qget(void) {
struct elem_s res;
if (qcnt <= 0) exit(42);
res = q[0];
if (--qcnt > 0) {
q[0] = q[qcnt];
qadjust(0);
}
return res;
}
int N, K;
int A[312345], B[312345], C[312345];
int matigyouretu[312345];
int64_t ans[312345];
int main(void) {
int i;
int ms = 0, me = 0;
int ninnzuu = 0;
if (scanf("%d%d", &N, &K) != 2) return 1;
for (i = 1; i <= N; i++) {
if (scanf("%d%d%d", &A[i], &B[i], &C[i]) != 3) return 1;
qadd(A[i], i);
}
while (qcnt > 0) {
struct elem_s cur = qget();
if (cur.id > 0) {
matigyouretu[me++] = cur.id;
} else {
ninnzuu -= C[-cur.id];
}
while (ms < me && ninnzuu + C[matigyouretu[ms]] <= K) {
ans[matigyouretu[ms]] = cur.t;
qadd(cur.t + B[matigyouretu[ms]], -matigyouretu[ms]);
ninnzuu += C[matigyouretu[ms]];
ms++;
}
}
for (i = 1; i <= N; i++) {
printf("%" PRId64 "\n", ans[i]);
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Long Waiting |
| User | mikecat |
| Language | C (gcc 12.2.0) |
| Score | 400 |
| Code Size | 1565 Byte |
| Status | AC |
| Exec Time | 212 ms |
| Memory | 15896 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt |
| All | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-01.txt | AC | 0 ms | 1604 KiB |
| 00-sample-02.txt | AC | 0 ms | 1720 KiB |
| 00-sample-03.txt | AC | 0 ms | 1644 KiB |
| 01-01.txt | AC | 43 ms | 5244 KiB |
| 01-02.txt | AC | 139 ms | 15896 KiB |
| 01-03.txt | AC | 48 ms | 5896 KiB |
| 01-04.txt | AC | 43 ms | 5580 KiB |
| 01-05.txt | AC | 174 ms | 14396 KiB |
| 01-06.txt | AC | 173 ms | 14336 KiB |
| 01-07.txt | AC | 27 ms | 3460 KiB |
| 01-08.txt | AC | 185 ms | 14404 KiB |
| 01-09.txt | AC | 210 ms | 14452 KiB |
| 01-10.txt | AC | 209 ms | 14380 KiB |
| 01-11.txt | AC | 210 ms | 14472 KiB |
| 01-12.txt | AC | 211 ms | 14428 KiB |
| 01-13.txt | AC | 212 ms | 14356 KiB |
| 01-14.txt | AC | 209 ms | 14380 KiB |