제출 #633281

#제출 시각아이디문제언어결과실행 시간메모리
633281AA_SurelyArt Collections (BOI22_art)C++17
100 / 100
1567 ms628 KiB
#include <bits/stdc++.h>
#include "art.h"

#define FOR(i, x, n) for(int i = x; i < n; i++)
#define F0R(i, n) FOR(i, 0, n)
#define ROF(i, x, n) for(int i = n - 1; i >= x; i--)
#define R0F(i, n) ROF(i, 0, n)

#define WTF cout << "WTF" << endl

#define IOS ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define F first
#define S second
#define PB push_back

#define ALL(x) x.begin(), x.end()
#define RALL(x) x.rbegin(), x.rend()

using namespace std;

typedef long long LL;

typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;

typedef vector<int> VI;
typedef vector<LL> VLL;
typedef vector<PII> VPII;
typedef vector<PLL> VPLL;

const int N = 4000 + 7;

int n;
int ans[N], kp[N];
VI qry, pr;

inline int ask(int x) {
    F0R(i, n) {
        qry[i] = x--;
        if (!x) x = n;
    }

    return publish(qry);
}

void solve(int nn) {
    n = nn;
    qry.resize(n);

    FOR(i, 1, n + 1) kp[i] = ask(i);

    int inv1 = kp[n];
    int inv2 = kp[1];
    int p = (inv1 + inv2 - n + 1) / 2;
    ans[1] = inv2 - p + 1;

    FOR(i, 2, n + 1) {
        inv1 = inv2;
        inv2 = kp[i];
        p = (inv1 + inv2 - n + 1) / 2;
        ans[i] = inv2 - p + 1;
    }

    pr.resize(n);
    FOR(i, 1, n + 1) pr[ ans[i] - 1 ] = i;
    answer(pr);

    return;
}

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

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