This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define Foxyy cin.tie(0); cout.tie(0); cout.sync_with_stdio(0);
const int INF = 0x3f3f3f3f;
mt19937 rng(chrono::steady_clock().now().time_since_epoch().count());
struct Solver {
int &N, &M, &Q;
vector<deque<int>> qu;
Solver(int &_N, int &_M, int &_Q):
N(_N), M(_M), Q(_Q) {
qu.resize(N);
}
void enqueue(int L, int R, int C, int K) {
for(int i = L; i < R; i++) {
for(int k = 0; k < K; k++) {
qu[i].push_back(C);
}
}
}
void dequeue(int L, int R, int K) {
for(int i = L; i < R; i++) {
for(int k = 0; k < K; k++) {
if (qu[i].empty()) break;
qu[i].pop_front();
}
}
}
int query(int A, ll B) {
if ((int)qu[A].size() >= B) {
return qu[A][B-1];
} else {
return 0;
}
}
void solve() {
while(Q--) {
int T;
cin >> T;
if (T == 1) {
int L, R, C, K;
cin >> L >> R >> C >> K;
enqueue(L-1, R, C, K);
} else if (T == 2) {
int L, R, K;
cin >> L >> R >> K;
dequeue(L-1, R, K);
} else if (T == 3) {
int A;
ll B;
cin >> A >> B;
cout << query(A-1, B) << '\n';
}
}
}
};
signed main() {
Foxyy
int N, M, Q;
cin >> N >> M >> Q;
Solver solver{N, M, Q};
solver.solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |