이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int A[400005];
int ans[400005];
int S[400005];
int T[400005];
int P[400005];
int SQ = 635;
vector<int> idx;
int id(int n) {
    return lower_bound(idx.begin(),idx.end(),n) - idx.begin();
}
signed main() {
    cin.sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int N, Q;
    cin >> N >> Q;
    int i, j;
    for(i=0;i<N;i++) cin >> A[i];
    int pt = 1;
    for(j=1;j<=Q;j++) {
        cin >> S[j] >> T[j] >> P[j];
        S[j]--;
        T[j] %= N;
        if(j%SQ==0 || j == Q) {
            //cout << pt << " to " << j << '\n';
            idx.clear();
            for(i=pt;i<=j;i++) {
                idx.push_back(S[i]);
                idx.push_back(T[i]);
            }
            sort(idx.begin(),idx.end());
            idx.erase(unique(idx.begin(),idx.end()),idx.end());
            vector<priority_queue<int>> PQ;
            PQ.resize(idx.size());
            for(i=0;i+1<idx.size();i++) {
                for(int m = idx[i]; m < idx[i+1]; m++) {
                    PQ[i].push(A[m]);
                }
            }
            for(int m = idx[idx.size()-1];m<N;m++) {
                PQ[idx.size()-1].push(A[m]);
            }
            for(int m = 0; m < idx[0]; m++) {
                PQ[idx.size()-1].push(A[m]);
            }
            //cout <<"PQ init\n";
            vector<priority_queue<int,vector<int>,greater<int>>> Push;
            Push.resize(idx.size());
            for(i=pt;i<=j;i++) {
                int s = id(S[i]);
                int t = id(T[i]);
                int ans = P[i];
                if(s<t) {
                    for(int m = s; m < t; m++) {
                        Push[m].push(ans);
                        PQ[m].push(ans);
                        ans = PQ[m].top();
                        PQ[m].pop();
                    }
                }
                else {
                    for(int m = s; m < idx.size(); m++) {
                        Push[m].push(ans);
                        PQ[m].push(ans);
                        ans = PQ[m].top();
                        PQ[m].pop();
                    }
                    for(int m = 0; m < t; m++) {
                        Push[m].push(ans);
                        PQ[m].push(ans);
                        ans = PQ[m].top();
                        PQ[m].pop();
                    }
                }
                cout << ans << '\n';
            }
            for(i=0;i+1<idx.size();i++) {
                for(int m = idx[i]; m < idx[i+1]; m++) {
                    Push[i].push(A[m]);
                    A[m] = Push[i].top();
                    Push[i].pop();
                }
            }
            for(int m = idx[idx.size()-1];m<N;m++) {
                Push[idx.size()-1].push(A[m]);
                A[m] = Push[idx.size()-1].top();
                Push[idx.size()-1].pop();
            }
            for(int m = 0; m <idx[0]; m++) {
                Push[idx.size()-1].push(A[m]);
                A[m] = Push[idx.size()-1].top();
                Push[idx.size()-1].pop();
            }
            pt = j + 1;
        }
    }
}
컴파일 시 표준 에러 (stderr) 메시지
sushi.cpp: In function 'int main()':
sushi.cpp:37:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |             for(i=0;i+1<idx.size();i++) {
      |                     ~~~^~~~~~~~~~~
sushi.cpp:64:38: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   64 |                     for(int m = s; m < idx.size(); m++) {
      |                                    ~~^~~~~~~~~~~~
sushi.cpp:79:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   79 |             for(i=0;i+1<idx.size();i++) {
      |                     ~~~^~~~~~~~~~~| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |