답안 #859961

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
859961 2023-10-11T08:56:00 Z MateiKing80 Floppy (RMI20_floppy) C++14
100 / 100
82 ms 42760 KB
#include <bits/stdc++.h>
#include "floppy.h"
using namespace std;
int lift[20][400002];
int st[400002];
 
void read_array(int subtask_id, const vector<int> &v) {
    string bits = "";
    
    stack<int> stk;
    for(auto i : v)
    {
        while(stk.size() && stk.top() < i)
        {
            bits += "1";
            stk.pop();
        }
        stk.push(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();
    int vf = 0;
    int pos = 0;
    for(int i = 1; i <= n; i++)
    {
        while(bits[pos] == '1')
        {
            vf--;
            pos++;
        }
        lift[0][i] = st[vf];
        st[++vf] = i;
        pos++;
    }
    for(int i = 1; i < 20; i++)
    {
        for(int j = 1; j <= n; j++)
            lift[i][j] = lift[i-1][lift[i-1][j]];
    }
    vector<int> ans;
    for(int i = 0; i < m; i++)
    {
        int l = a[i], r = b[i];
        l++, r++;
        int id = r;
        for(int j = 19; j >= 0; j--)
        {
            if(lift[j][id] >= l)
                id = lift[j][id];
        }
        ans.push_back(id-1);
    }
    return ans;
}

Compilation message

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) {
      |         ~~~~~~~~~~~~~~~~~~~~~^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 31544 KB Output is correct
2 Correct 4 ms 31544 KB Output is correct
3 Correct 5 ms 31552 KB Output is correct
4 Correct 4 ms 31552 KB Output is correct
5 Correct 4 ms 31552 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 20 ms 34240 KB Output is correct
2 Correct 20 ms 34312 KB Output is correct
3 Correct 20 ms 34216 KB Output is correct
4 Correct 20 ms 34316 KB Output is correct
5 Correct 22 ms 34232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 75 ms 42676 KB Output is correct
2 Correct 75 ms 42424 KB Output is correct
3 Correct 79 ms 42760 KB Output is correct
4 Correct 74 ms 42404 KB Output is correct
5 Correct 82 ms 42416 KB Output is correct