QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#553912#362. Sparklersmakrav0 0ms3844kbC++202.7kb2024-09-08 22:53:102024-09-08 22:53:11

Judging History

你现在查看的是最新测评结果

  • [2024-09-08 22:53:11]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:3844kb
  • [2024-09-08 22:53:10]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

#define all(x) (x).begin(), (x).end()
#define sz(x) (int)(x).size()
#define pb push_back
#define ff first
#define sc second
#define int __int128

void solve() {
    ll n, k, t; cin >> n >> k >> t;
    k--;
    vector<ll> a(n);
    for (int i = 0; i < n; i++) cin >> a[i];
    int L = 0, R = 1e9;
    while (R - L > 1) {
        int M = (L + R) / 2;
        vector<int> x(n);
        for (int i = 0; i < n; i++) {
            x[i] = a[i] - 2 * M * i * t;
        }
        vector<vector<bool>> dp(n, vector<bool>(n));
        dp[k][k] = 1;
        for (int len = 2; len <= n; len++) {
            for (int i = 0; i + len - 1 < n; i++) {
                dp[i][i + len - 1] = (dp[i][i + len - 2] && x[i] >= x[i + len - 1]) | (dp[i + 1][i + len - 1] && x[i] >= x[i + len - 1]);
            }
        }
        if (dp[0][n - 1]) R = M;
        else L = M;
        continue;
        int psl = k, psr = k;
        for (int i = k - 1; i >= 0; i--) {
            if (x[i] > x[psl]) psl = i;
        }
        for (int i = k + 1; i < n; i++) {
            if (x[i] < x[psr]) psr = i;
        }
        if (x[psl] < x[psr] || x[0] < x[n - 1]) {
            L = M;
            continue;
        }
        int curl = k, curr = k;
        bool good = true;
        while (curl != psl) {
            int mnl = x[curl], j = curl;
            for (; x[j] <= x[curl]; j--) {
                mnl = min(mnl, x[j]);
            }
            while (curr < n && x[curl] >= x[curr]) {
                if (x[curr] <= mnl) break;
                curr++;
            }
            if (curr >= n || x[curr] > x[curl]) {
                good = false;
                break;
            }
            curl = j;
        }
        if (!good) {
            L = M;
            continue;
        }
        curl = 0;
        curr = n - 1;
        while (curl < psl) {
            int mnl = x[curl], j = curl + 1;
            for (; x[j] < x[curl]; j++) {
                mnl = min(mnl, x[j]);
            }
            while (curr >= 0 && x[curl] >= x[curr]) {
                if (x[curr] <= mnl) break;
                curr--;
            }
            if (curr < 0 || x[curr] > x[curl]) {
                good = false; break;
            }
            curl = j;
        }
        if (good) R = M;
        else L = M;
    }
    cout << (ll) R << '\n';
}

signed main() {
    ll tt = 1;
    #ifdef LOCAL 
        freopen("in.txt", "r", stdin);
        freopen("out.txt", "w", stdout);
        cin >> tt;
    #else
        ios::sync_with_stdio(false); 
        cin.tie(0); cout.tie(0);
    #endif

    while (tt--) {
        solve();
    }

    return 0;
}

详细

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 20
Accepted
time: 0ms
memory: 3620kb

input:

10 9 2
0
1117660
2284171
3390084
3568342
4222750
5180454
6186411
6360445
6519656

output:

181102

result:

ok single line: '181102'

Test #2:

score: 20
Accepted
time: 0ms
memory: 3520kb

input:

3 2 1
0
368765
1493921

output:

373481

result:

ok single line: '373481'

Test #3:

score: 20
Accepted
time: 0ms
memory: 3612kb

input:

9 8 4
0
1970871
2488111
3723411
5581758
7596649
8984403
9989980
10451978

output:

168215

result:

ok single line: '168215'

Test #4:

score: 20
Accepted
time: 0ms
memory: 3820kb

input:

20 18 1
0
462590
635597
1653028
1731039
2632280
2993419
3958675
4824859
4923991
5874922
6721441
7856685
8109245
8187843
8916119
9662776
10617094
11598860
11759660

output:

477159

result:

ok single line: '477159'

Test #5:

score: 20
Accepted
time: 0ms
memory: 3480kb

input:

20 19 1
0
16714
600564
1738550
2860146
3233681
3470376
3511936
4127893
5089595
5771375
5923055
6712524
7645593
7839588
7939256
8270988
8365309
8565641
8764207

output:

242986

result:

ok single line: '242986'

Test #6:

score: 20
Accepted
time: 0ms
memory: 3788kb

input:

20 19 1
0
360130
416278
565928
1137578
1907790
2582414
3700996
4219574
4315031
4708493
5703532
6750886
7008779
7292334
7354499
8425871
8951795
9692673
9903623

output:

318641

result:

ok single line: '318641'

Test #7:

score: 20
Accepted
time: 0ms
memory: 3616kb

input:

20 3 1
0
497352
601758
1175884
1245741
1585758
1746236
2367513
2732420
2739779
3351827
3525038
4143423
4321819
5000239
5107430
5312137
5958753
6370846
6513352

output:

173188

result:

ok single line: '173188'

Test #8:

score: 20
Accepted
time: 0ms
memory: 3608kb

input:

20 7 1
0
416112
1276119
1776741
1971354
3051516
3964787
4752968
5114629
5456785
5783476
6450733
7492246
8117636
8726706
9380206
9424138
9680412
10381694
11143315

output:

394091

result:

ok single line: '394091'

Test #9:

score: 20
Accepted
time: 0ms
memory: 3784kb

input:

20 17 1
0
418275
1609767
2826602
4126911
5045015
5863900
5903447
6048863
6976925
7826789
8397913
8479522
9312544
9618482
9751692
10846799
12065875
12985857
14274374

output:

547554

result:

ok single line: '547554'

Test #10:

score: 20
Accepted
time: 0ms
memory: 3612kb

input:

20 5 1
0
636862
675532
1067405
2149723
2433765
3448119
4927611
5075453
6024114
6742671
7335495
8053680
9461089
10479891
11154362
11537902
11790723
12326305
13349359

output:

374282

result:

ok single line: '374282'

Test #11:

score: 20
Accepted
time: 0ms
memory: 3548kb

input:

20 9 1
0
253324
316843
568058
673961
952771
1319011
1398887
1748830
1895752
2246598
2269716
2344119
2451418
2690003
2985338
3065614
3143399
3495892
3568533

output:

124217

result:

ok single line: '124217'

Test #12:

score: 20
Accepted
time: 0ms
memory: 3816kb

input:

20 11 1
0
51952
61227
162819
249127
306399
334761
382780
449122
509397
542856
610609
616723
637063
646745
686393
770737
862074
908186
946759

output:

25317

result:

ok single line: '25317'

Test #13:

score: 20
Accepted
time: 0ms
memory: 3592kb

input:

20 20 1
0
560429
1501879
2074034
3034586
3927746
4203223
4704487
5719669
6398636
6727143
7650938
8442426
9196467
9374450
9518016
10137750
10914536
11539863
12123154

output:

330901

result:

ok single line: '330901'

Test #14:

score: 20
Accepted
time: 0ms
memory: 3560kb

input:

20 18 1
0
238996
608018
1366723
1785069
2539784
3289307
3602420
4757227
5445099
5644989
6150519
7171436
7964903
9199069
9472670
10160202
11298237
11504431
12150241

output:

374983

result:

ok single line: '374983'

Test #15:

score: 20
Accepted
time: 0ms
memory: 3556kb

input:

20 16 1
0
260310
303643
510297
1043552
1456874
1889988
2034528
2320694
2791007
3106279
3221006
3686585
4034261
4101785
4113243
4346119
4405697
4733785
5087878

output:

139122

result:

ok single line: '139122'

Test #16:

score: 20
Accepted
time: 0ms
memory: 3556kb

input:

20 8 1
0
484204
551742
1091736
1375852
1491742
1695121
2025199
2649991
2689456
3395295
4015308
4099000
4429963
4591520
5011483
5300133
5567208
6302488
6642143

output:

176556

result:

ok single line: '176556'

Test #17:

score: 20
Accepted
time: 0ms
memory: 3616kb

input:

20 6 1
0
62927
133948
189568
367293
532858
671097
693145
766893
880530
939114
944530
1061492
1137014
1312489
1390117
1549261
1657553
1800303
1929758

output:

69120

result:

ok single line: '69120'

Test #18:

score: 20
Accepted
time: 0ms
memory: 3508kb

input:

20 14 1
0
223799
635453
1081261
1241909
1496302
1622006
1780758
1882704
2140804
2503655
2564678
2565246
3012521
3485082
3933129
3986311
4363178
4395662
4701534

output:

223638

result:

ok single line: '223638'

Test #19:

score: 0
Wrong Answer
time: 0ms
memory: 3844kb

input:

20 5 1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

output:

1

result:

wrong answer 1st lines differ - expected: '0', found: '1'

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Skipped

Dependency #1:

0%