답안 #596463

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
596463 2022-07-14T19:04:11 Z CaroLinda Floppy (RMI20_floppy) C++14
0 / 100
79 ms 11168 KB
#include <stdlib.h>
#include <string.h>
#include <bits/stdc++.h>
#include "floppy.h"

const int LOG=20;

using namespace std;

void read_array(int subtask_id, const vector<int> &v) {
    string ans;
    stack<int> st;

    for(int i = 0; i < v.size();i++){
        while(!st.empty() && st.top() < v[i]){
            st.pop();
            ans.push_back('1');
        }

        ans.push_back('0');

        st.push(v[i]);
    }
    save_to_floppy(ans);
}

vector<int> solve_queries(int subtask_id, int N,
        const string &bits,
        const vector<int> &a, const vector<int> &b) {

    vector< vector<int> >dp(LOG, vector<int>(N,-1));
    stack<int> st;
    int ptr = 0;

    for(int i = 0; i < N; i++){
        while(!st.empty() && bits[ptr] == '1'){
            ptr++;
            st.pop();
        }

        ptr++;
        st.push(i);
    }

    for(int i= 1; i < LOG; i++)
        for(int j= 0; j < N; j++)
            if(dp[i-1][j] != -1)
                dp[i][j] = dp[i-1][dp[i-1][j]];

    vector<int> ret;

    for(int i = 0; i < a.size(); i++){
        int l = a[i];
        int r = b[i];

        for(int j = LOG-1; j >= 0; j--){
            if(dp[j][r] >= l)
                r = dp[j][r];
        }
        ret.push_back(r);
    }

    return ret;
}

Compilation message

floppy.cpp: In function 'void read_array(int, const std::vector<int>&)':
floppy.cpp:14:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |     for(int i = 0; i < v.size();i++){
      |                    ~~^~~~~~~~~~
floppy.cpp: In function 'std::vector<int> solve_queries(int, int, const string&, const std::vector<int>&, const std::vector<int>&)':
floppy.cpp:52:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |     for(int i = 0; i < a.size(); i++){
      |                    ~~^~~~~~~~~~
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 Incorrect 2 ms 664 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 3212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 79 ms 11168 KB Output isn't correct
2 Halted 0 ms 0 KB -