Submission #63281378


Source Code Expand

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

#define INF 1234567890
#define ll long long

int N;
ll X;
ll U[202020], D[202020];

bool f(ll H)
{
    ll UL = -(ll)1e18, UR = (ll)1e18;
    for(int i=1; i<=N; i++)
    {
        // U[i] + D[i] = H가 되어야 한다.
        ll sub = U[i] + D[i] - H;

        ll minU = max(0LL, sub - D[i]);

        ll ul = max(1LL, U[i] - sub);
        ll ur = U[i] - minU;

        ll dl = H - ur;
        ll dr = H - ul;

        if (ul > ur) return false;


        UL -= X;
        UR += X;
        UL = max(UL, ul);
        UR = min(UR, ur);
        if (i >= 2)
        {
            ll DL = H - UR;
            ll DR = H - UL;

            DL -= X;
            DR += X;
            DL = max(DL, dl);
            DR = min(DR, dr);

            UL = max(UL, H-DR);
            UR = min(UR, H-DL);
        }
        
        if (UL > UR) return false;
    }
    return true;
}

int main()
{
    ios::sync_with_stdio(0); cin.tie(0);
    cin >> N >> X;
    ll ub = (ll)1e18, sum = 0;
    for(int i=1; i<=N; i++)
    {
        cin >> U[i] >> D[i];
        ub = min(ub, U[i] + D[i]);
        sum += U[i] + D[i];
    }
    // H \in [2, ub]
    ll lo = 2, hi = ub+1;
    for(int i=0; i<40; i++)
    {
        ll mid = lo+hi>>1;
        if (f(mid)) lo = mid;
        else hi = mid;
    }
    cout << sum - lo*N << "\n";
    return 0;
}

Submission Info

Submission Time
Task F - Smooth Occlusion
User edenooo
Language C++ 20 (gcc 12.2)
Score 500
Code Size 1438 Byte
Status AC
Exec Time 57 ms
Memory 6760 KiB

Compile Error

Main.cpp: In function ‘int main()’:
Main.cpp:68:20: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
   68 |         ll mid = lo+hi>>1;
      |                  ~~^~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 4
AC × 69
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt, 01_random_53.txt, 01_random_54.txt, 01_random_55.txt, 01_random_56.txt, 01_random_57.txt, 01_random_58.txt, 01_random_59.txt, 01_random_60.txt, 01_random_61.txt, 01_random_62.txt, 01_random_63.txt, 01_random_64.txt, 01_random_65.txt, 01_random_66.txt, 01_random_67.txt, 01_random_68.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3632 KiB
00_sample_01.txt AC 1 ms 3512 KiB
00_sample_02.txt AC 1 ms 3512 KiB
00_sample_03.txt AC 1 ms 3504 KiB
01_random_04.txt AC 46 ms 6612 KiB
01_random_05.txt AC 49 ms 6632 KiB
01_random_06.txt AC 48 ms 6572 KiB
01_random_07.txt AC 46 ms 6704 KiB
01_random_08.txt AC 50 ms 6632 KiB
01_random_09.txt AC 55 ms 6760 KiB
01_random_10.txt AC 46 ms 6596 KiB
01_random_11.txt AC 51 ms 6564 KiB
01_random_12.txt AC 49 ms 6512 KiB
01_random_13.txt AC 50 ms 6628 KiB
01_random_14.txt AC 53 ms 6632 KiB
01_random_15.txt AC 55 ms 6568 KiB
01_random_16.txt AC 49 ms 6640 KiB
01_random_17.txt AC 50 ms 6756 KiB
01_random_18.txt AC 50 ms 6568 KiB
01_random_19.txt AC 47 ms 6572 KiB
01_random_20.txt AC 47 ms 6640 KiB
01_random_21.txt AC 56 ms 6704 KiB
01_random_22.txt AC 47 ms 6624 KiB
01_random_23.txt AC 48 ms 6572 KiB
01_random_24.txt AC 51 ms 6640 KiB
01_random_25.txt AC 51 ms 6564 KiB
01_random_26.txt AC 49 ms 6644 KiB
01_random_27.txt AC 55 ms 6636 KiB
01_random_28.txt AC 47 ms 6568 KiB
01_random_29.txt AC 51 ms 6504 KiB
01_random_30.txt AC 43 ms 6636 KiB
01_random_31.txt AC 50 ms 6624 KiB
01_random_32.txt AC 49 ms 6620 KiB
01_random_33.txt AC 55 ms 6544 KiB
01_random_34.txt AC 43 ms 6204 KiB
01_random_35.txt AC 45 ms 6352 KiB
01_random_36.txt AC 15 ms 4432 KiB
01_random_37.txt AC 3 ms 3588 KiB
01_random_38.txt AC 25 ms 4904 KiB
01_random_39.txt AC 42 ms 6052 KiB
01_random_40.txt AC 9 ms 4016 KiB
01_random_41.txt AC 22 ms 4680 KiB
01_random_42.txt AC 27 ms 5412 KiB
01_random_43.txt AC 24 ms 5068 KiB
01_random_44.txt AC 36 ms 5692 KiB
01_random_45.txt AC 20 ms 4616 KiB
01_random_46.txt AC 56 ms 6640 KiB
01_random_47.txt AC 56 ms 6708 KiB
01_random_48.txt AC 57 ms 6636 KiB
01_random_49.txt AC 57 ms 6640 KiB
01_random_50.txt AC 57 ms 6704 KiB
01_random_51.txt AC 42 ms 6636 KiB
01_random_52.txt AC 43 ms 6708 KiB
01_random_53.txt AC 49 ms 6504 KiB
01_random_54.txt AC 40 ms 6700 KiB
01_random_55.txt AC 37 ms 6636 KiB
01_random_56.txt AC 38 ms 6500 KiB
01_random_57.txt AC 43 ms 6608 KiB
01_random_58.txt AC 41 ms 6760 KiB
01_random_59.txt AC 39 ms 6572 KiB
01_random_60.txt AC 42 ms 6544 KiB
01_random_61.txt AC 41 ms 6708 KiB
01_random_62.txt AC 46 ms 6708 KiB
01_random_63.txt AC 56 ms 6572 KiB
01_random_64.txt AC 55 ms 6708 KiB
01_random_65.txt AC 55 ms 6620 KiB
01_random_66.txt AC 55 ms 6576 KiB
01_random_67.txt AC 1 ms 3432 KiB
01_random_68.txt AC 1 ms 3504 KiB