QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#218916#6401. Classic: N Real DNA Potstherehello#TL 5ms4016kbC++201.3kb2023-10-18 20:31:582023-10-18 20:31:59

Judging History

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

  • [2023-10-18 20:31:59]
  • 评测
  • 测评结果:TL
  • 用时:5ms
  • 内存:4016kb
  • [2023-10-18 20:31:58]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using i64 = long long;

void solve() {
    int n, k;
    cin >> n >> k;
    vector<array<int, 2>> a(n);
    for (int i = 0; i < n; ++i) {
        int x, y;
        cin >> x >> y;
        a[i] = {x, y};
    }

    auto check = [&](double mid) -> bool {
        vector<double> p(n);
        for (int i = 0; i < n; ++i) {
            auto [x, y] = a[i];
            p[i] = y - mid * x;
        }
        vector<double> x;
        for (int i = 0; i < n; ++i) {
            auto pos = upper_bound(x.begin(), x.end(), p[i],
                                   [](double a, double b) { return a - b < -1e-12; });
            if (pos == x.end()) {
                x.push_back(p[i]);
            } else {
                *pos = p[i];
            }
            if (x.size() >= k) return 1;
        }
        return 0;
    };

    double l = -2e9 - 1, r = 2e9 + 1;
    while (l + 1e-12 < r) {
        double mid = (l + r) / 2;
        if (check(mid)) {
            l = mid;
        } else {
            r = mid;
        }
    }
    cout << fixed << setprecision(12);
    cout << l << '\n';
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t = 1;
    // cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3796kb

input:

4 3
1 2
2 4
3 3
4 1

output:

-0.999999999999

result:

ok found '-1.0000000', expected '-1.0000000', error '0.0000000'

Test #2:

score: 0
Accepted
time: 0ms
memory: 4000kb

input:

2 2
1 1
5 3

output:

0.500000000000

result:

ok found '0.5000000', expected '0.5000000', error '0.0000000'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3908kb

input:

2 2
222640995 547139825
489207317 725361095

output:

0.668581344645

result:

ok found '0.6685813', expected '0.6685813', error '0.0000000'

Test #4:

score: 0
Accepted
time: 1ms
memory: 3792kb

input:

1000 20
545612 774435015
828317 212155588
5294705 85926095
5648835 764528941
6159263 570820268
7177330 744079287
8446124 162286636
8735551 586528841
9263030 524140841
9505706 636254627
12111352 182639083
12750780 238494418
13149143 913232250
13382784 11485121
13699797 414697815
14263990 423817548
15...

output:

3.793210462287

result:

ok found '3.7932105', expected '3.7932105', error '0.0000000'

Test #5:

score: 0
Accepted
time: 1ms
memory: 3740kb

input:

1000 100
163505 684865289
2674260 837752883
2694530 150054425
2870791 236723512
3262597 800933455
3558503 905056977
4260872 45990808
4532415 268478572
5299228 546172100
6019224 12074540
6345109 747272172
6539452 449655551
7215852 676269961
9062989 769545718
9444242 874911191
10264016 341805234
10595...

output:

-1.860577876042

result:

ok found '-1.8605779', expected '-1.8605779', error '0.0000000'

Test #6:

score: 0
Accepted
time: 2ms
memory: 3848kb

input:

5000 10
34774 620025564
366562 278306777
446710 509672662
650220 70882120
824803 317731338
881144 257861254
1063458 61483347
1071840 639872836
1263842 30790337
1591940 346781076
1964777 814735151
2067497 63962255
2220071 379252135
2539054 428050443
2937092 423099578
3088992 959927412
3229098 9591796...

output:

134.621472807098

result:

ok found '134.6214728', expected '134.6214728', error '0.0000000'

Test #7:

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

input:

5000 20
199760 355854017
326334 308841311
562097 142603502
737215 739382649
740379 538515503
775788 515038260
817583 280515397
919169 892864353
972326 662840403
1344912 46143677
1550928 380148689
1589971 740794446
1638208 835030507
1707737 1806402
1736374 716485086
1738772 965202367
1855327 28929729...

output:

19.107398871059

result:

ok found '19.1073989', expected '19.1073989', error '0.0000000'

Test #8:

score: 0
Accepted
time: 0ms
memory: 3776kb

input:

100 80
3642237 433728851
3835922 596838254
4822541 903206579
11786229 71614574
28051109 568783761
37988181 991770771
56927147 913182266
80808317 468372188
96532943 867642142
97069884 869788913
104938691 736691068
115294599 927608069
130086679 135340679
143622561 267761236
147838354 653078316
1483162...

output:

-45.917501529517

result:

ok found '-45.9175015', expected '-45.9175015', error '0.0000000'

Test #9:

score: -100
Time Limit Exceeded

input:

300 300
186421 261109479
5746147 454165382
9237830 637520496
9851923 811263876
11414218 355514230
13089969 488595547
14673543 646754325
16206307 26512314
20111827 236176303
29494991 773939650
31542488 394434870
33151870 729247973
35483496 458610267
39685298 553345644
41333867 843739706
41339284 5952...

output:


result: