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 |
|
|
| 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 |