답안 #595426

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
595426 2022-07-13T17:52:20 Z Deepesson Art Collections (BOI22_art) C++17
0 / 100
0 ms 208 KB
#include <bits/stdc++.h>
/**
 * returns how many complaints you will receive for this ordering of the art collections
 */
int publish(std::vector<int>);

/**
 * use this function when you have found the correct order of the art collections
 * You must call answer exactly once; your program will be automatically
 * terminated afterwards.
 */
void answer(std::vector<int>);

/**
 * implement this function
 */
void solve(int N);

int _N;
int publish(std::deque<int> x){
    std::vector<int> u;
    for(auto&z:x)u.push_back(z);
    return publish(u);
}

std::vector<int> before;


int padrao=0;

int descobrir_posicao(int x){
    std::deque<int> vec;
    for(int i=0;i!=_N;++i){
        if(i+1==x)continue;
        vec.push_back(i+1);
    }
    std::deque<int> back,front;
    front=vec;
    front.push_back(x);
    int alpha = padrao,beta=publish(front);

    int custo_base = (alpha+beta-(_N-x))/2;

    ///Quantos caras na frente tem?

    int posicao = alpha-custo_base;
    std::cout<<posicao<<"\n";
    return posicao;
}

void solve(int N) {
    _N=N;
    std::deque<int> vec;
    for(int i=0;i!=_N;++i){
        vec.push_back(i+1);
    }
    padrao=publish(vec);
    int array[N]={};
    for(int i=0;i!=N-1;++i){
        int p = descobrir_posicao(i+1);
        int c=0;
        for(int j=0;j!=N;++j){
            if(array[j])continue;
            if(c==p){
                array[j]=i+1;
                break;
            }
            ++c;
        }
    }
    for(auto&x:array)if(!x)x=N;
    std::vector<int> res;
    for(int i=0;i!=N;++i)res.push_back(array[i]);
    answer(res);
}

Compilation message

interface.cpp: In function 'int publish(std::vector<int>)':
interface.cpp:20:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
interface.cpp: In function 'void answer(std::vector<int>)':
interface.cpp:36:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Security violation!
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Security violation!
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Security violation!
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Security violation!
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Security violation!
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Security violation!
2 Halted 0 ms 0 KB -