이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdlib.h>
#include <string.h>
#include <bits/stdc++.h>
#include "floppy.h"
using namespace std;
void read_array(int subtask_id, const vector<int> &v) {
string bits;
stack<int>stk;
int n = v.size();
for(int i=0;i<n;i++){
while(!stk.empty() && v[i] > v[stk.top()]){
bits+="1";
stk.pop();
}
stk.push(i);
bits+="0";
}
save_to_floppy(bits);
}
typedef pair<int,int> pii;
#define fi first
#define se second
vector<int> solve_queries(int subtask_id, int n,const string &bits,const vector<int> &a, const std::vector<int> &b) {
int q = a.size();
vector<int>ans(q);
vector<vector<pii>>qq(n);
for(int i=0;i<q;i++){
qq[b[i]].push_back({a[i],i});
}
vector<int>stk;
int ptr = 0;
for(int i=0;i<n;i++){
int cnt = 0;
while(bits[ptr] == '1'){
ptr++;
cnt++;
}
ptr++;
while(cnt--)stk.pop_back();
stk.push_back(i);
for(pii x:qq[i]){
int p = lower_bound(stk.begin(),stk.end(),x.fi) - stk.begin();
ans[x.se] = stk[p];
}
}
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
stub.cpp: In function 'void run2()':
stub.cpp:101:30: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
101 | if (query_answers.size() != M) {
| ~~~~~~~~~~~~~~~~~~~~~^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |