이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |