Submission #68172127


Source Code Expand

/*
IN GOD WE TRUST
*/

#include<bits/stdc++.h>
#include<iostream>
#include<cstring>
#define pii pair<int, int>
#define fast                     \
    ios::sync_with_stdio(false); \
    cin.tie(0);                  \
    cout.tie(0);
#define endl "\n";
// #pragma GCC optimize "trapv"  //(used to find the integer overflow error in your code) [makes code run slow]
#define sz(v) ((int)(v).size())
#define all(v) v.begin(), v.end()

#define MAX 100005
using namespace std;
typedef long long ll;
typedef double lld;
typedef long double ld;
const ll MOD = 1e9 + 7;
const ll mod = 998244353;
// for policy based DS
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using Graph = vector<vector<int>>;
// #define ordered_set tree<pair<int,int>, null_type,less<pair<int,int> >, rb_tree_tag,tree_order_statistics_node_update>
#define os_find(k) find_by_order(k)  // find the kth smallest element 
#define os_order(k) order_of_key(k)  // number less than k
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define getMat(x, n, m, val) vector<vector<int>> x(n, vector<int>(m, val))
#define pll pair<ll, ll>

#define inv2 499122177 // moduler inverse of 2 when ( pow(2, mod - 2))  - > where mod = 998244353
void __print(int x) { cerr << x; }
void __print(long x) { cerr << x; }
void __print(long long x) { cerr << x; }
void __print(unsigned x) { cerr << x; }
void __print(unsigned long x) { cerr << x; }
void __print(unsigned long long x) { cerr << x; }
void __print(float x) { cerr << x; }
void __print(double x) { cerr << x; }
void __print(long double x) { cerr << x; }
void __print(char x) { cerr << '\'' << x << '\''; }
void __print(const char *x) { cerr << '\"' << x << '\"'; }
void __print(const string &x) { cerr << '\"' << x << '\"'; }
void __print(bool x) { cerr << (x ? "true" : "false"); }

template <typename T, typename V>
void __print(const pair<T, V> &x)
{
    cerr << '{';
    __print(x.first);
    cerr << ',';
    __print(x.second);
    cerr << '}';
}
template <typename T>
void __print(const T &x)
{
    int f = 0;
    cerr << '{';
    for (auto &i : x)
        cerr << (f++ ? "," : ""), __print(i);
    cerr << "}";
}
void _print() { cerr << "]\n"; }
template <typename T, typename... V>
void _print(T t, V... v)
{
    __print(t);
    if (sizeof...(v))
        cerr << ", ";
    _print(v...);
}
#define debug(x...)               \
    cerr << "[" << #x << "] = ["; \
    _print(x)

/* Custom Functions */
ll powMul(ll a, ll b, ll mod)
{
    ll res = 0;
    a %= mod;
    while (b)
    {
        if (b & 1)
            res = (res + a) % mod;
        a = (a * 2) % mod;
        b >>= 1;
    }
    return res;
}

ll powderMod(ll a,ll b, ll mod)
{
    if(b==0)
    {
        return 1;
    }
    if(b%2)
    {
        return (a*powderMod(a,b-1, mod))%mod;
    }
    return powderMod((a*a)%mod,b/2, mod);
}

ll powder(ll a,ll b)
{
    if(b==0)
    {
        return 1;
    }
    if(b%2)
    {
        return (a*powder(a,b-1));
    }
    return powder((a*a),b/2);
}


ll gcd(ll a, ll b) {if (b > a) {return gcd(b, a);} if (b == 0) {return a;} return gcd(b, a % b);}
ll lcm (ll a, ll b) { return  (a / gcd(a, b)) * b; }
ll expo(ll a, ll b, ll mod) {ll res = 1; while (b > 0) {if (b & 1)res = (res * a) % mod; a = (a * a) % mod; b = b >> 1;} return res;}
void extendgcd(ll a, ll b, ll*v) {if (b == 0) {v[0] = 1; v[1] = 0; v[2] = a; return ;} extendgcd(b, a % b, v); ll x = v[1]; v[1] = v[0] - v[1] * (a / b); v[0] = x; return;} //pass an arry of size1 3
ll mminv(ll a, ll b) {ll arr[3]; extendgcd(a, b, arr); return arr[0];} //for non prime b
ll mminvprime(ll a, ll b) {return expo(a, b - 2, b);}
ll mod_add(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;}
ll mod_mul(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;}
ll mod_sub(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;}
ll mod_div(ll a, ll b, ll m) {a = a % m; b = b % m; return (mod_mul(a, mminvprime(b, m), m) + m) % m;} 

const int fx[4] = {-1, 0, 1, 0};
const int fy[4] = {0, -1, 0, 1};
// const int N = 10000 + 100;
const int N1 = 3100;
const int INF = int(1e9) + 99;
const int LOG = 20;

struct st{
    ll p;
    ll a;
    ll b;
};

void solve () {
    int n;
    cin >> n;

    vector<st> v(n);
    ll val = 0;
    ll mxp = 0;
    for (int i = 0;i < n; i++) {
        cin >> v[i].p >> v[i].a >> v[i].b;
        val += v[i].b;
        mxp = max(v[i].p, mxp);
    }
    ll N = val + mxp;

    int q;
    cin >> q;
    while (q--)
    {
        int x;
        cin >> x;
        if (x < N) {
             ll ans = x;
            for (int j = 0;j < n; j++) {
                if (v[j].p >= ans) {
                    ans += v[j].a;
                } else {
                    ans = max(ans - v[j].b, 0LL);
                }
            }
            cout << ans << endl;
        } else {
            cout << x - val << endl;
        }
    }
    
}

int main()
{
    fast;
    int T = 1;
    // cin >> T;
    while (T--)
    {
        solve();
    }
    return 0;
}

Submission Info

Submission Time
Task D - Takahashi's Expectation
User Lazarusx2
Language C++ 20 (gcc 12.2)
Score 425
Code Size 5298 Byte
Status AC
Exec Time 68 ms
Memory 5664 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 425 / 425
Status
AC × 3
AC × 30
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_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
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3560 KiB
00_sample_01.txt AC 1 ms 3412 KiB
00_sample_02.txt AC 1 ms 3492 KiB
01_random_03.txt AC 66 ms 5632 KiB
01_random_04.txt AC 66 ms 5584 KiB
01_random_05.txt AC 66 ms 5612 KiB
01_random_06.txt AC 65 ms 5592 KiB
01_random_07.txt AC 66 ms 5548 KiB
01_random_08.txt AC 65 ms 5580 KiB
01_random_09.txt AC 68 ms 5580 KiB
01_random_10.txt AC 65 ms 5576 KiB
01_random_11.txt AC 67 ms 5664 KiB
01_random_12.txt AC 66 ms 5656 KiB
01_random_13.txt AC 67 ms 5612 KiB
01_random_14.txt AC 66 ms 5644 KiB
01_random_15.txt AC 66 ms 5636 KiB
01_random_16.txt AC 18 ms 3536 KiB
01_random_17.txt AC 22 ms 3652 KiB
01_random_18.txt AC 55 ms 5276 KiB
01_random_19.txt AC 11 ms 3584 KiB
01_random_20.txt AC 14 ms 3644 KiB
01_random_21.txt AC 52 ms 5284 KiB
01_random_22.txt AC 52 ms 5400 KiB
01_random_23.txt AC 29 ms 3392 KiB
01_random_24.txt AC 53 ms 5612 KiB
01_random_25.txt AC 68 ms 5624 KiB
01_random_26.txt AC 54 ms 5560 KiB
01_random_27.txt AC 67 ms 5580 KiB
01_random_28.txt AC 60 ms 5640 KiB
01_random_29.txt AC 68 ms 5628 KiB