제출 #1237514

#제출 시각아이디문제언어결과실행 시간메모리
1237514IrateArt Collections (BOI22_art)C++20
70 / 100
778 ms520 KiB
#include<bits/stdc++.h>
#include "art.h"
using namespace std;
const int mxN = 4005;
vector<int>ANS, pos;
int n, QUERY = 0;
int publish(vector<int>R);
// {
//     QUERY++;
//     int I = 0;
//     for(int i = 0;i < n;++i){
//         for(int j = i + 1;j < n;++j){
//             I += (pos[R[i]] > pos[R[j]]);
//         }
//     }
//     return I;
// }
void answer(vector<int>R);
// {
//     for(int i = 0;i < n;++i){
//         if(R[i] != ANS[i]){
//             cout << "ERRRR" << endl;
//             for(int j : R){
//                 cout << j << ' ';
//             }
//             cout << endl;
//             return;
//         }
//     }
// }

int GetPos(int a){
    vector<int>temp = {a};
    for(int i = 1;i <= n;++i){
        if(i == a)continue;
        temp.push_back(i);
    }
    int I = publish(temp);
    temp.clear();
    for(int i = 1;i <= n;++i){
        if(i == a)continue;
        temp.push_back(i);
    }
    temp.push_back(a);
    int D = I - publish(temp);
    return (D + n - 1) / 2;
}
vector<int>gen(int n){
    vector<int>perm(n);
    for(int i = 1;i <= n;++i){
        perm[i - 1] = i;
    }
    for(int i = 0;i < 1000;++i){
        int a = rand() % n;
        int b = rand() % n;
        swap(perm[a], perm[b]);
    }
    return perm;
}
void solve(int N){
    n = N;
    ANS = gen(n);
    pos.resize(n + 1);
    for(int i = 0;i < n;++i){
        pos[ANS[i]] = i;
    }
    cout << endl;
    vector<int>res(n);
    for(int i = 1;i <= n;++i){
        res[GetPos(i)] = i;
    }
    answer(res);
    // cout << QUERY << '\n';
}
// int main(){
//     srand(time(0));
//     ios_base::sync_with_stdio(0);
//     cin.tie(0);
//     int N;
//     cin >> N;
//     solve(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...