QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#108112#3563. Treatment Projectbashkort#5 57ms3920kbC++201.4kb2023-05-23 16:39:142024-05-31 13:41:13

Judging History

This is the latest submission verdict.

  • [2024-05-31 13:41:13]
  • Judged
  • Verdict: 5
  • Time: 57ms
  • Memory: 3920kb
  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-23 16:39:14]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

struct Segment {
    int t, l, r, w;
};

constexpr ll inf = 3e18;

template<typename T, typename O>
bool ckmin(T &a, const O &b) { return (b < a) ? a = b, 1 : 0; }

template<typename T, typename O>
bool ckmax(T &a, const O &b) { return (b > a) ? a = b, 1 : 0; }

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> n >> m;

    vector<Segment> s(m);

    for (auto &[t, l, r, w] : s) {
        cin >> t >> l >> r >> w;
    }

    sort(s.begin(), s.end(), [&](const auto &x, const auto &y) {
        return array{x.r - x.t, y.l} < array{y.r - y.t, y.l};
    });

    vector<ll> dp(m, inf);

    bool updated = true;

    while (updated) {
        updated = false;

        for (int i = 0; i < m; ++i) {
            if (s[i].l == 1) {
                updated |= ckmin(dp[i], s[i].w);
                continue;
            }
            for (int j = 0; j < m; ++j) {
                if (s[j].r - s[i].l + 1 >= abs(s[i].t - s[j].t)) {
                    updated |= ckmin(dp[i], dp[j] + s[i].w);
                }
            }
        }
    }

    ll ans = inf;

    for (int i = 0; i < m; ++i) {
        if (s[i].r == n) {
            ans = min(ans, dp[i]);
        }
    }

    if (ans == inf) {
        cout << "-1\n";
    } else {
        cout << ans << '\n';
    }

    return 0;
}

详细

Subtask #1:

score: 0
Time Limit Exceeded

Test #1:

score: 0
Time Limit Exceeded

input:

1000000000 100000
1 811370001 811380000 1000000000
1 413190001 413200000 1000000000
1 462480001 462490000 1000000000
1 384860001 384870000 1000000000
1 543220001 543230000 1000000000
1 766300001 766310000 1000000000
1 348890001 348900000 1000000000
1 996350001 996360000 1000000000
1 302700001 302710...

output:


result:


Subtask #2:

score: 5
Accepted

Test #19:

score: 5
Accepted
time: 1ms
memory: 3876kb

input:

1 1
1000000000 1 1 1000000000

output:

1000000000

result:

ok single line: '1000000000'

Test #20:

score: 5
Accepted
time: 0ms
memory: 3572kb

input:

1000000000 16
6 2 2 1
4 999999997 999999999 4
2 999999997 1000000000 2
3 1 4 3
3 999999997 1000000000 3
5 999999998 999999999 3
6 999999999 999999999 1
2 1 4 2
6 3 999999998 1
999999987 1 1000000000 10
999999986 1 1000000000 10
999999985 1 1000000000 10
4 2 4 4
5 2 3 3
1 999999997 1000000000 1
1 1 4 1

output:

9

result:

ok single line: '9'

Test #21:

score: 5
Accepted
time: 0ms
memory: 3832kb

input:

1000000000 16
5 999999998 999999999 2
999999985 1 1000000000 8
5 2 3 3
2 1 4 2
4 2 4 3
6 3 999999998 1
1 999999997 1000000000 1
6 999999999 999999999 2
6 2 2 2
2 999999997 1000000000 2
3 999999997 1000000000 3
4 999999997 999999999 4
999999987 1 1000000000 10
1 1 4 1
999999986 1 1000000000 10
3 1 4 3

output:

8

result:

ok single line: '8'

Test #22:

score: 5
Accepted
time: 1ms
memory: 3632kb

input:

1000000000 16
200000001 3 100000003 1000000000
1 1 100000001 1000000000
400000001 5 100000005 1000000000
1 900000000 1000000000 1000000000
500000001 899999995 999999995 1000000000
500000001 6 100000006 1000000000
600000001 899999994 999999994 1000000000
700000001 500000001 999999993 1000000000
40000...

output:

16000000000

result:

ok single line: '16000000000'

Test #23:

score: 5
Accepted
time: 0ms
memory: 3680kb

input:

1000000000 16
100000001 2 100000001 1000000000
500000001 6 100000006 1000000000
300000001 899999997 999999997 1000000000
700000001 8 500000000 1000000000
400000001 899999996 999999996 1000000000
1 1 100000001 1000000000
100000001 899999999 999999999 1000000000
200000001 3 100000003 1000000000
600000...

output:

-1

result:

ok single line: '-1'

Test #24:

score: 5
Accepted
time: 0ms
memory: 3672kb

input:

1000000000 16
308520246 1 500000000 359755556
295655247 487135002 987135001 271593000
314734892 968055357 1000000000 312883746
410091097 1 500000000 101547816
395764591 485673495 985673494 629609944
392316197 982225101 1000000000 401923300
978742397 1 500000000 868693198
952345206 473602810 97360280...

output:

944232302

result:

ok single line: '944232302'

Test #25:

score: 5
Accepted
time: 1ms
memory: 3804kb

input:

1000000000 16
672706728 1 200000000 497504405
685823406 186883323 386883322 774982231
674014449 375074366 575074365 773000447
654139023 555198940 755198939 790219287
656808645 752529318 952529317 476720223
644457233 940177906 1000000000 664282982
959379929 1 200000000 786969801
978273081 181106849 3...

output:

3404859829

result:

ok single line: '3404859829'

Test #26:

score: 5
Accepted
time: 1ms
memory: 3580kb

input:

1000000000 16
540954071 1 10000000 710172197
540536129 9582059 19582058 536145072
539536499 18582429 28582428 814753471
539185649 28231579 38231578 620882859
538350203 37396133 47396132 386658616
539249992 46496344 56496343 870617207
539643763 56102573 66102572 904970863
539573301 66032111 76032110 ...

output:

-1

result:

ok single line: '-1'

Test #27:

score: 5
Accepted
time: 0ms
memory: 3644kb

input:

1000000000 16
491674089 1 500000000 336648490
539994271 451679820 951679819 469043391
517647080 929332630 1000000000 292857884
281124238 1 500000000 712418479
328708776 452415464 952415463 296084141
356807854 924316387 1000000000 648894560
660900926 1 500000000 384729282
657610483 496709559 99670955...

output:

1886981327

result:

ok single line: '1886981327'

Test #28:

score: 5
Accepted
time: 0ms
memory: 3636kb

input:

1000000000 16
838698042 1 200000000 534015959
858199116 180498928 380498927 504484211
839907744 362207557 562207556 898913833
847053449 555061853 755061852 910907433
860497726 741617577 941617576 171206653
867040700 935074604 1000000000 676192995
208351725 1 200000000 506499124
228113409 180238318 3...

output:

-1

result:

ok single line: '-1'

Test #29:

score: 5
Accepted
time: 0ms
memory: 3676kb

input:

1000000000 16
205846077 1 10000000 873895887
204858740 9012665 19012664 147782763
205674932 18196474 28196473 776792335
205398591 27920134 37920133 18876276
205275591 37797135 47797134 113374737
206002463 47070264 57070263 216570418
205456894 56524696 66524695 508488400
205480940 66500651 76500650 8...

output:

-1

result:

ok single line: '-1'

Test #30:

score: 5
Accepted
time: 0ms
memory: 3536kb

input:

1000000000 16
521719332 635760132 934417526 529743702
1305373 525299245 1000000000 461248301
101171661 237013303 513442486 519226146
461851512 227481783 939390202 642026488
835321835 380826656 1000000000 864581393
774758954 598049287 1000000000 885982602
476039441 1 226851442 609871787
583465229 392...

output:

1071400261

result:

ok single line: '1071400261'

Test #31:

score: 5
Accepted
time: 1ms
memory: 3800kb

input:

1000000000 16
206783888 1 794031651 473137665
654757441 181608545 482154540 814079812
199299059 172003379 589586500 977531496
445754685 647415391 1000000000 724703815
30495945 650569357 1000000000 700408250
370373056 15814055 569148871 97147596
592280811 734763422 1000000000 99025581
523660734 98269...

output:

926766012

result:

ok single line: '926766012'

Test #32:

score: 5
Accepted
time: 0ms
memory: 3636kb

input:

1000000000 16
53129883 43438614 576626916 420027795
595715370 217546351 904088926 117669374
501698138 394506898 1000000000 501348919
16794543 467166832 1000000000 430252715
66170783 44326969 740935026 307666284
100432574 105218928 612739989 964426597
66832107 59260547 587707946 695056263
71803431 40...

output:

1084276058

result:

ok single line: '1084276058'

Test #33:

score: 5
Accepted
time: 0ms
memory: 3872kb

input:

20 16
11 11 20 614196799
18 11 20 106915074
9 20 20 806710174
5 19 20 334176271
12 11 16 63935383
8 1 3 493767973
13 17 20 937825697
16 11 20 599156261
4 6 20 162982558
17 4 20 156235818
12 8 14 967709279
19 11 20 880182565
6 13 18 842507131
19 17 19 30861075
17 1 10 659432307
9 5 15 689432411

output:

815668125

result:

ok single line: '815668125'

Test #34:

score: 5
Accepted
time: 0ms
memory: 3752kb

input:

20 16
14 1 5 36860000
17 3 8 100853922
6 14 16 960259663
20 2 9 15251465
8 17 18 411813150
16 18 20 957718939
17 1 8 346305175
2 20 20 759532534
3 16 20 708800301
12 19 20 571134941
5 4 11 532379718
6 16 20 124294312
20 12 20 89050063
16 13 19 890357065
20 13 20 289577457
15 20 20 126485192

output:

-1

result:

ok single line: '-1'

Test #35:

score: 5
Accepted
time: 0ms
memory: 3644kb

input:

20 16
5 17 20 883046038
2 13 15 646298453
1 16 19 673045363
5 8 9 429038258
5 4 7 675052934
3 9 11 556330641
4 7 11 709314017
2 18 20 666670231
1 3 3 408856853
2 2 6 619870732
2 12 14 948839865
2 10 13 131394079
2 2 2 70988341
3 1 3 17741436
5 14 14 901591370
2 17 19 223748049

output:

-1

result:

ok single line: '-1'

Test #36:

score: 5
Accepted
time: 1ms
memory: 3560kb

input:

20 16
8 17 19 6
11 1 12 19
20 15 20 18
16 13 20 13
12 6 16 9
14 2 19 3
5 10 13 16
7 18 18 20
5 11 20 11
11 7 20 11
13 18 20 15
9 7 16 3
13 1 4 11
5 12 20 2
11 13 16 20
11 14 19 7

output:

19

result:

ok single line: '19'

Test #37:

score: 5
Accepted
time: 0ms
memory: 3588kb

input:

20 16
4 8 12 1
5 3 3 3
3 1 3 2
5 1 3 2
5 20 20 2
5 8 8 2
4 7 11 2
1 8 9 4
1 8 10 5
5 20 20 3
4 12 16 4
5 6 7 3
5 8 8 3
5 15 18 3
1 19 20 5
1 2 2 1

output:

-1

result:

ok single line: '-1'

Subtask #3:

score: 0
Time Limit Exceeded

Dependency #2:

100%
Accepted

Test #38:

score: 30
Accepted
time: 57ms
memory: 3700kb

input:

1000000000 5000
2157 2 343 342
684 999998751 1000000000 684
1022 999998751 1000000000 1022
991 999998751 1000000000 991
2291 999999792 999999999 208
47 1 1250 47
402 999998751 1000000000 402
1688 999999189 999999999 811
987 1 1250 987
1606 999999107 999999999 893
2304 999999805 999999999 195
685 999...

output:

2499

result:

ok single line: '2499'

Test #39:

score: 30
Accepted
time: 57ms
memory: 3920kb

input:

1000000000 5000
195 1 1250 195
564 1 1250 564
129 999998751 1000000000 129
1682 999999183 999999999 817
2204 2 296 295
1035 999998751 1000000000 1035
847 999998751 1000000000 847
1476 999998977 999999999 1023
1811 999999312 999999999 688
2472 2 28 27
1319 999998820 999999999 1180
61 1 1250 61
78 999...

output:

2498

result:

ok single line: '2498'

Test #40:

score: 0
Time Limit Exceeded

input:

1000000000 5000
757999622 10002618 12002617 1000000000
295999853 4001147 6001146 1000000000
379999811 12003185 14003184 1000000000
103999949 2000949 4000948 1000000000
565999718 18004710 20004709 1000000000
197999902 10002898 12002897 1000000000
335999833 169 2000168 1000000000
355999823 12003173 14...

output:


result:


Subtask #4:

score: 0
Skipped

Dependency #1:

0%