#include <bits/stdc++.h>
using namespace std;
const int c=22, c2=(1<<c), inf=2e9;
int n, n2, si, k, kezd[c], veg[c], len[c], id[c], dp[c2], ki[c2], val[c], t[c], s[c], jo;
vector<int> sor;
void rec(int mask, int p) {
if (mask==0) return;
int ut=ki[mask];
int el=mask-(1<<ut);
s[id[ut]]=p, t[id[ut]]=dp[mask]-len[ut];
rec(el, p);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> k;
n2=(1<<n);
for (int i=0; i<n; i++) {
int a, b, c;
cin >> a >> b >> c;
kezd[i]=a, veg[i]=a+b-1, len[i]=c, id[i]=i;
}
for (int i=0; i<n; i++) {
for (int j=i+1; j<n; j++) {
if (kezd[j]<kezd[i]) {
swap(kezd[i], kezd[j]);
swap(veg[i], veg[j]);
swap(len[i], len[j]);
swap(id[i], id[j]);
}
}
}
for (int i=n-2; i>=0; i--) {
if (veg[i]+1==kezd[i+1]) {
veg[i]=veg[i+1];
}
}
dp[0]=1;
for (int i=1; i<n2; i++) {
dp[i]=inf;
}
for (int mask=0; mask<n2; mask++) {
int ert=dp[mask];
int pos=0;
for (int i=0; i<n; i++) {
if (ert>=kezd[i]) {
pos++;
}
}
if (pos==n || ert==inf) continue;
for (int i=0; i<n; i++) {
if ((mask & (1<<i)) && veg[i]>ert) sor.push_back(i);
}
si=sor.size();
for (int kov=0; kov<n; kov++) {
if (mask & (1<<kov)) continue;
if (ert+len[kov]>=kezd[kov]) continue;
int lep=mask+(1<<kov);
if ((pos==0 || ert>veg[pos-1]) && ((mask & (1<<pos))==0 || ert+len[kov]<kezd[pos]) && (si==0 || ert+len[kov]<kezd[sor[0]])) {
if (ert+len[kov]<dp[lep]) {
dp[lep]=ert+len[kov];
ki[lep]=kov;
}
continue;
}
for (int i=0; i<sor.size(); i++) {
int s=veg[sor[i]]+len[kov]+1;
if (s>=kezd[kov]) break;
if (i==si-1 || s<kezd[sor[i+1]]) {
if (s<dp[lep]) {
dp[lep]=s;
ki[lep]=kov;
}
break;
}
}
}
sor.clear();
}
if (k==1) {
if (dp[n2-1]<inf) {
rec(n2-1, 1);
jo=1;
}
}
if (k==2) {
for (int mask=0; mask<n2; mask++) {
if (!jo && dp[mask]<inf && dp[n2-1-mask]<inf) {
rec(mask, 1), rec(n2-1-mask, 2);
jo=1;
}
}
}
if (!jo) {
cout << "NO\n";
return 0;
}
cout << "YES\n";
for (int i=0; i<n; i++) {
cout << s[i] << " " << t[i] << "\n";
}
}| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| 0 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 1ms | 316 KiB | ||||
| 3 | Elfogadva | 1ms | 316 KiB | ||||
| 4 | Elfogadva | 1ms | 316 KiB | ||||
| 1 | 5/5 | ||||||
| 5 | Elfogadva | 1ms | 316 KiB | ||||
| 6 | Elfogadva | 1ms | 316 KiB | ||||
| 7 | Elfogadva | 1ms | 316 KiB | ||||
| 8 | Elfogadva | 1ms | 384 KiB | ||||
| 9 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | 8/8 | ||||||
| 10 | Elfogadva | 1ms | 520 KiB | ||||
| 11 | Elfogadva | 1ms | 316 KiB | ||||
| 12 | Elfogadva | 1ms | 316 KiB | ||||
| 13 | Elfogadva | 1ms | 316 KiB | ||||
| 14 | Elfogadva | 1ms | 316 KiB | ||||
| 15 | Elfogadva | 1ms | 316 KiB | ||||
| 16 | Elfogadva | 1ms | 316 KiB | ||||
| 17 | Elfogadva | 1ms | 316 KiB | ||||
| 18 | Elfogadva | 1ms | 316 KiB | ||||
| 19 | Elfogadva | 1ms | 316 KiB | ||||
| 20 | Elfogadva | 1ms | 316 KiB | ||||
| 21 | Elfogadva | 1ms | 444 KiB | ||||
| 3 | 7/7 | ||||||
| 22 | Elfogadva | 1ms | 316 KiB | ||||
| 23 | Elfogadva | 1ms | 428 KiB | ||||
| 24 | Elfogadva | 1ms | 316 KiB | ||||
| 25 | Elfogadva | 1ms | 316 KiB | ||||
| 26 | Elfogadva | 1ms | 316 KiB | ||||
| 27 | Elfogadva | 1ms | 316 KiB | ||||
| 28 | Elfogadva | 1ms | 316 KiB | ||||
| 29 | Elfogadva | 1ms | 508 KiB | ||||
| 30 | Elfogadva | 1ms | 328 KiB | ||||
| 31 | Elfogadva | 1ms | 316 KiB | ||||
| 32 | Elfogadva | 1ms | 316 KiB | ||||
| 33 | Elfogadva | 1ms | 316 KiB | ||||
| 4 | 12/12 | ||||||
| 34 | Elfogadva | 2ms | 564 KiB | ||||
| 35 | Elfogadva | 4ms | 820 KiB | ||||
| 36 | Elfogadva | 1ms | 316 KiB | ||||
| 37 | Elfogadva | 1ms | 316 KiB | ||||
| 38 | Elfogadva | 2ms | 396 KiB | ||||
| 39 | Elfogadva | 3ms | 316 KiB | ||||
| 40 | Elfogadva | 4ms | 576 KiB | ||||
| 41 | Elfogadva | 8ms | 692 KiB | ||||
| 42 | Elfogadva | 17ms | 952 KiB | ||||
| 43 | Elfogadva | 1ms | 316 KiB | ||||
| 44 | Elfogadva | 1ms | 316 KiB | ||||
| 45 | Elfogadva | 2ms | 376 KiB | ||||
| 46 | Elfogadva | 3ms | 316 KiB | ||||
| 47 | Elfogadva | 4ms | 316 KiB | ||||
| 48 | Elfogadva | 8ms | 692 KiB | ||||
| 49 | Elfogadva | 17ms | 948 KiB | ||||
| 5 | 13/13 | ||||||
| 50 | Elfogadva | 16ms | 820 KiB | ||||
| 51 | Elfogadva | 6ms | 820 KiB | ||||
| 52 | Elfogadva | 1ms | 316 KiB | ||||
| 53 | Elfogadva | 1ms | 316 KiB | ||||
| 54 | Elfogadva | 1ms | 316 KiB | ||||
| 55 | Elfogadva | 3ms | 316 KiB | ||||
| 56 | Elfogadva | 4ms | 564 KiB | ||||
| 57 | Elfogadva | 7ms | 628 KiB | ||||
| 58 | Elfogadva | 10ms | 920 KiB | ||||
| 59 | Elfogadva | 9ms | 952 KiB | ||||
| 6 | 15/15 | ||||||
| 60 | Elfogadva | 71ms | 2380 KiB | ||||
| 61 | Elfogadva | 26ms | 2372 KiB | ||||
| 62 | Elfogadva | 78ms | 2412 KiB | ||||
| 63 | Elfogadva | 76ms | 2392 KiB | ||||
| 64 | Elfogadva | 78ms | 2356 KiB | ||||
| 65 | Elfogadva | 76ms | 2360 KiB | ||||
| 66 | Elfogadva | 71ms | 2412 KiB | ||||
| 67 | Elfogadva | 79ms | 2356 KiB | ||||
| 68 | Elfogadva | 75ms | 2356 KiB | ||||
| 69 | Elfogadva | 1ms | 316 KiB | ||||
| 70 | Elfogadva | 1ms | 316 KiB | ||||
| 71 | Elfogadva | 1ms | 316 KiB | ||||
| 72 | Elfogadva | 1ms | 316 KiB | ||||
| 73 | Elfogadva | 1ms | 316 KiB | ||||
| 74 | Elfogadva | 1ms | 316 KiB | ||||
| 75 | Elfogadva | 2ms | 316 KiB | ||||
| 76 | Elfogadva | 2ms | 468 KiB | ||||
| 77 | Elfogadva | 2ms | 316 KiB | ||||
| 78 | Elfogadva | 3ms | 508 KiB | ||||
| 79 | Elfogadva | 3ms | 476 KiB | ||||
| 80 | Elfogadva | 3ms | 500 KiB | ||||
| 81 | Elfogadva | 4ms | 564 KiB | ||||
| 82 | Elfogadva | 4ms | 316 KiB | ||||
| 83 | Elfogadva | 4ms | 564 KiB | ||||
| 84 | Elfogadva | 9ms | 564 KiB | ||||
| 85 | Elfogadva | 8ms | 564 KiB | ||||
| 86 | Elfogadva | 8ms | 568 KiB | ||||
| 87 | Elfogadva | 18ms | 820 KiB | ||||
| 88 | Elfogadva | 19ms | 904 KiB | ||||
| 89 | Elfogadva | 17ms | 820 KiB | ||||
| 90 | Elfogadva | 35ms | 1380 KiB | ||||
| 91 | Elfogadva | 39ms | 1384 KiB | ||||
| 92 | Elfogadva | 35ms | 1308 KiB | ||||
| 93 | Elfogadva | 79ms | 2420 KiB | ||||
| 94 | Elfogadva | 71ms | 2392 KiB | ||||
| 95 | Elfogadva | 71ms | 2488 KiB | ||||
| 96 | Elfogadva | 71ms | 2292 KiB | ||||
| 7 | 15/15 | ||||||
| 97 | Elfogadva | 72ms | 2476 KiB | ||||
| 98 | Elfogadva | 41ms | 2540 KiB | ||||
| 99 | Elfogadva | 21ms | 2356 KiB | ||||
| 100 | Elfogadva | 35ms | 2356 KiB | ||||
| 101 | Elfogadva | 37ms | 2356 KiB | ||||
| 102 | Elfogadva | 1ms | 316 KiB | ||||
| 103 | Elfogadva | 1ms | 316 KiB | ||||
| 104 | Elfogadva | 1ms | 316 KiB | ||||
| 105 | Elfogadva | 1ms | 316 KiB | ||||
| 106 | Elfogadva | 2ms | 316 KiB | ||||
| 107 | Elfogadva | 2ms | 316 KiB | ||||
| 108 | Elfogadva | 3ms | 704 KiB | ||||
| 109 | Elfogadva | 3ms | 316 KiB | ||||
| 110 | Elfogadva | 4ms | 568 KiB | ||||
| 111 | Elfogadva | 4ms | 756 KiB | ||||
| 112 | Elfogadva | 8ms | 676 KiB | ||||
| 113 | Elfogadva | 9ms | 700 KiB | ||||
| 114 | Elfogadva | 10ms | 952 KiB | ||||
| 115 | Elfogadva | 18ms | 924 KiB | ||||
| 116 | Elfogadva | 24ms | 1464 KiB | ||||
| 117 | Elfogadva | 35ms | 1332 KiB | ||||
| 118 | Elfogadva | 54ms | 2392 KiB | ||||
| 119 | Elfogadva | 61ms | 2356 KiB | ||||
| 8 | 15/15 | ||||||
| 120 | Elfogadva | 331ms | 8496 KiB | ||||
| 121 | Elfogadva | 104ms | 8504 KiB | ||||
| 122 | Elfogadva | 85ms | 8500 KiB | ||||
| 123 | Elfogadva | 143ms | 8504 KiB | ||||
| 124 | Elfogadva | 170ms | 8500 KiB | ||||
| 125 | Elfogadva | 312ms | 8632 KiB | ||||
| 126 | Elfogadva | 115ms | 4404 KiB | ||||
| 127 | Elfogadva | 243ms | 8500 KiB | ||||
| 128 | Elfogadva | 129ms | 4484 KiB | ||||
| 129 | Elfogadva | 259ms | 8500 KiB | ||||
| 130 | Elfogadva | 160ms | 4328 KiB | ||||
| 131 | Elfogadva | 231ms | 8628 KiB | ||||
| 132 | Elfogadva | 108ms | 4404 KiB | ||||
| 133 | Elfogadva | 298ms | 8500 KiB | ||||
| 134 | Elfogadva | 143ms | 4404 KiB | ||||
| 135 | Elfogadva | 214ms | 8500 KiB | ||||
| 136 | Elfogadva | 142ms | 4372 KiB | ||||
| 137 | Elfogadva | 303ms | 8500 KiB | ||||
| 138 | Elfogadva | 314ms | 8500 KiB | ||||
| 9 | 10/10 | ||||||
| 139 | Elfogadva | 1.393s | 33076 KiB | ||||
| 140 | Elfogadva | 291ms | 33076 KiB | ||||
| 141 | Elfogadva | 375ms | 33076 KiB | ||||
| 142 | Elfogadva | 512ms | 33076 KiB | ||||
| 143 | Elfogadva | 726ms | 33192 KiB | ||||
| 144 | Elfogadva | 1.335s | 33096 KiB | ||||
| 145 | Elfogadva | 703ms | 16692 KiB | ||||
| 146 | Elfogadva | 765ms | 33076 KiB | ||||
| 147 | Elfogadva | 425ms | 16696 KiB | ||||
| 148 | Elfogadva | 1.478s | 33112 KiB | ||||
| 149 | Elfogadva | 646ms | 16692 KiB | ||||
| 150 | Elfogadva | 1.187s | 33248 KiB | ||||
| 151 | Elfogadva | 517ms | 16692 KiB | ||||
| 152 | Elfogadva | 884ms | 33076 KiB | ||||
| 153 | Elfogadva | 554ms | 16692 KiB | ||||
| 154 | Elfogadva | 1.044s | 33076 KiB | ||||
| 155 | Elfogadva | 595ms | 17016 KiB | ||||
| 156 | Elfogadva | 1.217s | 33224 KiB | ||||
| 157 | Elfogadva | 1.37s | 33256 KiB | ||||