답안 #1080721

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1080721 2024-08-29T13:11:11 Z Trent 푸드 코트 (JOI21_foodcourt) C++17
0 / 100
1000 ms 20316 KB
#include <iostream>
#include "bits/stdc++.h"
#define forR(i, x) for(int i=0; i < (x); ++i)
#define REP(i, a, b) for(int i=(a); i<(b); ++i)
#define all(x) x.begin(), x.end()
#define boost() cin.sync_with_stdio(0); cin.tie(0)
#define asst(x) if(!(x)) exit(1)
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vll;

const int MN = 2e5 + 10;
int len[MN];
struct ev{
	int ti;
	ll to;
};
ll ch[MN];
int c[MN];
bool us[MN];
vector<ev> evs[MN];
struct query{
	int ai, i; ll b;
};
vector<query> qus[MN];
int ans[MN];

int main(){
	boost();
	int n, m, q; cin >> n >> m >> q;
	int ai=0;
	forR(i, q){
		int ty; cin >> ty;
		if(ty == 1){
			int l, r, k; cin >> l >> r >> c[i] >> k;
			evs[l].push_back({i, k});
			evs[r+1].push_back({i, 0});
		} else if(ty == 2){
			int l, r, k; cin >> l >> r >> k;
			evs[l].push_back({i, -k});
			evs[r+1].push_back({i, 0});
		} else {
			int a; ll b; cin >> a >> b;
			qus[a].push_back({ai++, i, b});
		}
	}
	REP(i, 1, n+1){
		for(auto [ti, to] : evs[i]) {
			ch[ti] = to;
		}
		// cerr << i << ":\n";
		// forR(j, q) cerr << ch[j] << ' ';
		// cerr << '\n';
		for(auto [ai, i, b] : qus[i]) {
			ll cur = 0;
			int ln = -1;
			forR(j, i+1) if(ch[j] < 0) ln = j;
			forR(j, ln + 1) cur = max(0LL, cur + ch[j]);
			int k = ln;
			while(cur < b && k <= i) {
				cur = cur + ch[++k];
			}

			if(cur < b) ans[ai] = 0;
			else {
				asst(cur >= b);
				ans[ai] = c[k];
			}
		}
	}
	forR(i, ai) cout << ans[i] << '\n';
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 9816 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 9816 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1022 ms 14728 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 14 ms 20316 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 9816 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1069 ms 14428 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 9816 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 9816 KB Output isn't correct
2 Halted 0 ms 0 KB -