Submission #19340729


Source Code Expand

#include <bits/stdc++.h>
#define rep(i, N) for(int i = 0; i < (int)N; i++)
#define CREP(i, l, r) for(int i = l; i <= r; i++)
using namespace std;
typedef long long ll;
typedef tuple<int,int,int> T; 
typedef pair<ll,ll> P;
typedef vector<int> V;
typedef vector<ll> Vll;
const int INF = 1000000000;      //10^9, 2*INF
const ll LLINF = (1LL << 60);   // > 10^18 ll  2*LLINF

int main() {
    int n;
    ll co;
    cin >> n >> co;
    Vll a(n), b(n), c(n); rep(i, n) scanf("%lld%lld%lld", &a[i],&b[i],&c[i]);

    vector<P> ac(n), bc(n);
    rep(i,n){
        ac[i] = P(a[i],c[i]);
        bc[i] = P(b[i],c[i]);
    }

    sort(ac.begin(),ac.end());
    sort(bc.begin(),bc.end());

    ac.emplace_back(P(LLINF,LLINF));
    bc.emplace_back(P(LLINF,LLINF));


    ll pc = 0, day = 0, ans = 0;
    int aci=0,bci = 0;
    bool snk = false;
    while(aci < n || bci < n){
        ll nday = min(ac[aci].first, bc[bci].first);
        ans += (snk ? co : pc)*(nday-day);
        day = nday;

        while(aci < n && ac[aci].first == day) {
            pc += ac[aci].second;
            aci++;
        }
        if(pc > co) snk = true;
        else snk = false;
        ans += (snk ? co : pc);
        while(bci < n && bc[bci].first == day) {
            pc -= bc[bci].second;
            bci++;
        }
        if(pc > co) snk = true;
        else snk = false;
        day++;
        //printf("day %lld\n", day);
    }

    printf("%lld\n", ans);
}

Submission Info

Submission Time
Task D - Snuke Prime
User samari06
Language C++ (GCC 9.2.1)
Score 400
Code Size 1498 Byte
Status AC
Exec Time 102 ms
Memory 17212 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:17:42: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   17 |     Vll a(n), b(n), c(n); rep(i, n) scanf("%lld%lld%lld", &a[i],&b[i],&c[i]);
      |                                     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 28
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
random_01.txt AC 7 ms 3652 KiB
random_02.txt AC 3 ms 3636 KiB
random_03.txt AC 2 ms 3624 KiB
random_04.txt AC 2 ms 3636 KiB
random_05.txt AC 2 ms 3756 KiB
random_06.txt AC 2 ms 3624 KiB
random_07.txt AC 2 ms 3704 KiB
random_08.txt AC 2 ms 3760 KiB
random_09.txt AC 2 ms 3760 KiB
random_10.txt AC 2 ms 3720 KiB
random_11.txt AC 1 ms 3660 KiB
random_12.txt AC 2 ms 3760 KiB
random_13.txt AC 5 ms 3712 KiB
random_14.txt AC 2 ms 3760 KiB
random_15.txt AC 2 ms 3656 KiB
random_16.txt AC 34 ms 7168 KiB
random_17.txt AC 61 ms 11228 KiB
random_18.txt AC 52 ms 10156 KiB
random_19.txt AC 50 ms 9508 KiB
random_20.txt AC 98 ms 17192 KiB
random_21.txt AC 72 ms 13300 KiB
random_22.txt AC 14 ms 4640 KiB
random_23.txt AC 102 ms 17164 KiB
random_24.txt AC 101 ms 17204 KiB
random_25.txt AC 77 ms 17212 KiB
sample_01.txt AC 2 ms 3756 KiB
sample_02.txt AC 2 ms 3720 KiB
sample_03.txt AC 2 ms 3656 KiB