제출 #578077

#제출 시각아이디문제언어결과실행 시간메모리
578077balbitArt Collections (BOI22_art)C++17
100 / 100
1806 ms680 KiB
#include "art.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pii pair<ll, ll>
#define f first
#define s second

#define SZ(x) (int)((x).size())
#define ALL(x) (x).begin(), (x).end()
#define pb push_back

#define FOR(i,a,b) for (int i = a; i<b; ++i)
#define REP(i,n)  FOR(i,0,n)
#define REP1(i,n) FOR(i,1,n+1)

#define MX(a,b) a = max(a,b)
#define MN(a,b) a = min(a,b)
#ifdef BALBIT
#define bug(...) cerr<<"#"<<__LINE__<<": "<<#__VA_ARGS__<<"- ", _do(__VA_ARGS__)
template<typename T> void _do( T && x) {cerr<<x<<endl;}
template<typename T,typename ...S> void _do( T && x, S && ...y) {cerr<<x<<", "; _do(y...);}
#else
#define bug(...)
#define endl '\n'
#endif // BALBIT


//
// --- 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
//

namespace {
const int maxn = 4004;
bool done[maxn];


#ifdef BALBIT
vector<int> p = {3,1,4,2,6,5};
//vector<int> p = {1,3,2};
int publish(vector<int> v) {
    vector<int> tmp;
    for (int x : v) tmp.pb(p[x-1]);
    int re = 0;
    REP(i, SZ(tmp)) REP(j,i) {
        re += tmp[j] > tmp[i];
    }

    return re;
}

void answer(vector<int> v) {
    for (int t : v) cout<<t<<' ';
    cout<<endl;
}
#endif
} // empty namespace

void solve(int n) {
    vector<int> val(n);
    vector<int> ha(n);
    REP(round,n) {
        vector<int> ord(n);
        REP(i,n) {
            ord[i] = (i+round)%n+ 1;

        }
        int get = publish(ord);
        ha[round] =get;
    }
    vector<int> ans(n);
    REP(i,n) {
        int j = (i+1) % n;
        int ab = ha[i] - ha[j];
        val[i] = (ab + n - 1);
        bug(i, val[i]); assert(val[i]% 2 == 0);
        val[i] /= 2;
        ans[val[i]]= i + 1;
    }
    answer(ans);

}


#ifdef BALBIT
signed main(){
    solve(6);
}
#endif // BALBIT

컴파일 시 표준 에러 (stderr) 메시지

art.cpp:45:6: warning: '{anonymous}::done' defined but not used [-Wunused-variable]
   45 | bool done[maxn];
      |      ^~~~
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) {
      |        ~~~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...