제출 #670925

#제출 시각아이디문제언어결과실행 시간메모리
670925KahouFood Court (JOI21_foodcourt)C++14
14 / 100
828 ms524288 KiB
/* In the name of God, aka Allah */
// let this be mytemp.cpp
#include<bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define endl '\n'
#define mk make_pair
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int N = 2.5e5+50;
ll n, m, q, pt[N], sm[N];
vector<pll> vc[N];

void join(int l, int r, int c, ll k) {
	for (int i = l; i <= r; i++) {
		vc[i].push_back({c, k});
		sm[i] += k;
	}
}
void leave(int l, int r, ll k) {
	for (int i = l; i <= r; i++) {
		pt[i] += k;
		pt[i] = min(pt[i], sm[i]);
	}
}

ll service(int id, ll x) {
	ll t = 0;
	for (pll p:vc[id]) {
		t += p.S;
		if (t >= x+pt[id]) return p.F;
	}
	return 0;
}

void solve() {
	cin >> n >> m >> q;
	for (int i = 1; i <= q; i++) {
		ll t, l, r, c, k, id, x;
		cin >> t;
		if (t == 1) {
			cin >> l >> r >> c >> k;
			join(l, r, c, k);
		}
		if (t == 2) {
			cin >> l >> r >> k;
			leave(l, r, k);
		}
		if (t == 3) {
			cin >> id >> x;
			cout << service(id, x) << endl;
		}
	}
}
int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	solve();
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...