编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#15556 #1053. youngmagician爱玩四个铁心脏2 Wrong Answer 90 4194 ms 31748 K C++ 11 / 2.3 K 192024211838 2024-03-15 18:29:27
显示原始代码
#include <iostream>
#include <vector>
#include <algorithm>
#include <tuple>
#include <cmath>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    vector<tuple<long long, long long, long long>> num;

    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        num.emplace_back(make_tuple(a, 0, 0));
    }
    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        get<1>(num[i]) = a;
    }
    for (int i = 0; i < n; i++) {
        int a;
        cin >> a;
        get<2>(num[i]) = a;
    }
    sort(
        num.begin(), num.end(),
        [](const tuple<long long, long long, long long>& a, const tuple<long long, long long, long long>& b) {
            return get<0>(a) < get<0>(b);
        });  //排序,小到大

    long long right = num.size() - 1;
    vector<long long> sum(n);

    for (int i = 0; i < n; i++) {
        sum[i] = get<2>(num[i]);
        if (i) {
            sum[i] += sum[i - 1];
        }
    }
    long long max1 = 0;

    long long countv = 0;
    for (int i = 0; i < n; i++) {
        long long temp = get<0>(num[i]);  //坐标值
        long long r = get<1>(num[i]);     //半径
        //范围太大,二分查找,找到两个边界值范围
        long long left = 0;
        right = num.size() - 1;
        long long R1 = temp - r;
        long long R2 = temp + r;
        while (left < right)  //找最右边值范围
        {
            long long mid = (right + left) / 2;
            if (get<0>(num[mid]) >= R2) {
                right = mid;
            } else {
                left = mid + 1;
            }
        }
        long long max1 = left;
        left = 0;
        right = num.size() - 1;
        while (left < right)  //找最左边值范围
        {
            long long mid = (right + left) / 2;
            if (get<0>(num[mid]) >= R1) {
                right = mid;
            } else {
                left = mid + 1;
            }
        }
        long long min = left;
        if (get<0>(num[max1]) > R2) {
            max1--;
        }

        countv = max(countv, sum[max1] - sum[min - 1]);
    }
    cout << countv << endl;
    return 0;
}
子任务 #1
Wrong Answer
得分:90
测试点 #1
Accepted
得分:100
用时:14 ms
内存:1224 KiB

输入文件(1.in

18467
-11055 15965 3634 4037 5251 26848 18865 27985 1792 -7703 8203 2901 17070 21332 3619 4810 -957
<285249 bytes omitted>

答案文件(1.out

9085258

用户输出

9085258

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:14 ms
内存:1308 KiB

输入文件(2.in

18810
25525 19477 -22724 24353 15064 31473 -19526 -13477 3128 20194 28070 18537 -31362 14575 14131 
<290709 bytes omitted>

答案文件(2.out

9334962

用户输出

9334962

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:57 ms
内存:3572 KiB

输入文件(3.in

100000
537277652 151018213 90613924 45444816 137475011 116822218 472518803 207521551 382084796 7938
<1937139 bytes omitted>

答案文件(3.out

27864

用户输出

27864

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:586 ms
内存:31640 KiB

输入文件(4.in

1000000
453551192 -68660045 121403219 -86588435 -533232215 45978151 3018392 65944827 15294959 -3607
<19376810 bytes omitted>

答案文件(4.out

284130

用户输出

284130

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:665 ms
内存:31736 KiB

输入文件(5.in

1000000
147839651 -77411845 -123840575 91831923 122810270 713492817 169564700 90604635 -112846715 1
<19377621 bytes omitted>

答案文件(5.out

250089

用户输出

250089

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:563 ms
内存:31692 KiB

输入文件(6.in

1000000
305471927 8815049 19205431 188592786 -768751815 673804965 -361267615 66736271 469983128 743
<18147391 bytes omitted>

答案文件(6.out

22867

用户输出

22867

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:566 ms
内存:31748 KiB

输入文件(7.in

1000000
29624159 292640154 -466020835 153129762 197982402 -641561065 859459451 -523894390 -66405635
<18149690 bytes omitted>

答案文件(7.out

24177

用户输出

24177

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:575 ms
内存:31700 KiB

输入文件(8.in

1000000
-676235015 763010181 345441587 243629683 250145873 619479926 -492353405 397072791 309122003
<18149183 bytes omitted>

答案文件(8.out

24637

用户输出

24637

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:569 ms
内存:31748 KiB

输入文件(9.in

1000000
357446663 -19100180 18372614 3604481 378517151 549785571 -327370670 96482158 178358607 -632
<18150221 bytes omitted>

答案文件(9.out

23584

用户输出

23584

系统信息

Exited with return code 0
测试点 #10
Wrong Answer
得分:0
用时:585 ms
内存:31644 KiB

输入文件(10.in

1000000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3
<22320514 bytes omitted>

答案文件(10.out

1000000000000000

用户输出

999999991999983

Special Judge 信息

Files user_out and answer differ

系统信息

Exited with return code 0