답안 #714263

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
714263 2023-03-24T07:31:33 Z Khizri Art Collections (BOI22_art) C++17
0 / 100
1 ms 236 KB
#include "art.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define F first
#define S second
#define INF 1e18
#define all(v) (v).begin(),(v).end()
#define rall(v) (v).rbegin(),(v).rend()
#define pii pair<int,int>
#define pll pair<ll,ll>
#define OK cout<<"Ok"<<endl;
#define MOD (ll)(1e9+7)
//
// --- Sample implementation for the task art ---
//
// To compile this program with the sample grader, place:
//     art.h art_sample.cpp sample_grader.cpp
// in a single folder, then open the terminal in this directory (right-click onto an empty spot in the directory,
// left click on "Open in terminal") and enter e.g.:
//     g++ -std=c++17 art_sample.cpp sample_grader.cpp
// in this folder. This will create a file a.out in the current directory which you can execute from the terminal
// as ./a.out
// See task statement or sample_grader.cpp for the input specification
//
int ask(vector<int>&vt,int ind,int pl){
    vector<int>v;
    for(int i=0;i<pl;i++){
        v.pb(vt[i]);
    }
    v.pb(vt[ind]);
    for(int i=pl;i<vt.size();i++){
        if(i!=ind){
            v.pb(vt[i]);
        }
    }
    return publish(v);
}
void change(vector<int>&vt,int ind,int pl){
    vector<int>v;
    for(int i=0;i<pl;i++){
        v.pb(vt[i]);
    }
    v.pb(vt[ind]);
    for(int i=pl;i<vt.size();i++){
        if(i!=ind){
            v.pb(vt[i]);
        }
    }
    vt=v;
}
void solve(int n) {
    vector<int>vt;
    for(int i=1;i<=n;i++){
        vt.pb(i);
    }
    int k=publish(vt);
    for(int i=2;i<=n;i++){
        swap(vt[i-1],vt[i-2]);
        int x=publish(vt);
        swap(vt[i-1],vt[i-2]);
        if(x<k){
            int l=1,r=i;
            while(l<=r){
                int m=(l+r)/2;
                int x=ask(vt,i-1,m-1);
                if(x<k){
                    k=x;
                    r=m-1;
                }
                else{
                    l=m+1;
                }
            }
            change(vt,i-1,r);
            if(k==0){
                answer(vt);
            }
        }
    }
    answer(vt);
}

Compilation message

art.cpp: In function 'int ask(std::vector<int>&, int, int)':
art.cpp:33:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |     for(int i=pl;i<vt.size();i++){
      |                  ~^~~~~~~~~~
art.cpp: In function 'void change(std::vector<int>&, int, int)':
art.cpp:46:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |     for(int i=pl;i<vt.size();i++){
      |                  ~^~~~~~~~~~
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 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Incorrect 1 ms 236 KB Not correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Incorrect 1 ms 236 KB Not correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Incorrect 1 ms 236 KB Not correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Incorrect 1 ms 236 KB Not correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Incorrect 1 ms 236 KB Not correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Incorrect 1 ms 236 KB Not correct
7 Halted 0 ms 0 KB -