제출 #856248

#제출 시각아이디문제언어결과실행 시간메모리
856248divadFloppy (RMI20_floppy)C++14
28 / 100
1059 ms10312 KiB
#include <bits/stdc++.h>
#include "floppy.h"
using namespace std;
const int NMAX = 4e5+2;
int bigr[NMAX], st[NMAX], vf;

void read_array(int subtask_id, const vector<int> &v) {
    string bits = "";
    int n = v.size();
    vf = 0;
    for(int i = 0; i < n; i++){
        while(vf > 0 && st[vf] < v[i]){
            bits += "1";
            vf--;
        }
        st[++vf] = v[i];
        bits += "0";
    }
    save_to_floppy(bits);
}

vector<int> solve_queries(int subtask_id, int N,
        const string &bits,
        const vector<int> &a, const vector<int> &b) {
    int n = N, m = a.size();
    vf = 0;
    int pos = 0;
    for(int i = 1; i <= n; i++){
        while(bits[pos] == '1'){
            vf--;
            pos++;
        }
        bigr[i] = st[vf];
        st[++vf] = i;
        pos++;
    }
    vector<int> ans;
    for(int i = 0; i < m; i++){
        int l = a[i], r = b[i];
        l++, r++;
        int id = r;
        while(bigr[id] >= l){
            id = bigr[id];
        }
        ans.push_back(id-1);
    }
    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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...