답안 #1093448

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1093448 2024-09-26T20:06:31 Z andrewp Art Collections (BOI22_art) C++17
0 / 100
0 ms 344 KB
//Dedicated to my love, ivaziva
#pragma GCC optimize("Ofast")
#include "art.h"
#include <bits/stdc++.h> 
using namespace std;  
 
using pii = pair<int, int>;
using ll = int64_t;
 
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define dbg(x) cerr << #x << ": " << x << '\n';

const int N = 4010;
vector<int> inv[N];
int out[N]; 

void solve(int n) {
    vector<int> p;
   for (int i = 1; i <= n; i++) {
        inv[i].clear();
        out[i] = 0;
        p.push_back(i);
    }
    int ret_st, ret_new;
    ret_st = publish(p); 
    if (ret_st == 0) {
        answer(p);
        return;
    }
    for (int i = 0; i < n - 1; i++) { 
        swap(p[i], p[i + 1]);
        ret_new = publish(p);  
        if (ret_new < ret_st) { 
            out[p[i + 1]]++;
            inv[p[i]].push_back(p[i + 1]); 
        } else { 
            out[p[i]]++; 
            inv[p[i + 1]].push_back(p[i]); 
        }
        swap(p[i], p[i + 1]); 
    }
    vector<int> topo;        
    set<pii> st;
    for (int i = 1; i <= n; i++) {
        st.insert({out[i], i});
    }
    vector<int> ans; 
    while (!st.empty()) {
        pii z = *st.begin();
        int x = z.second;
        ans.push_back(x);
        st.erase(st.begin());   
        for (int u : inv[x]) {
            st.erase({out[u], u});
            out[u]--;
            st.insert({out[u], u}); 
        }
    }
    answer(ans);
}
 
// int32_t main()  {
//     ios::sync_with_stdio(false); cin.tie(nullptr);  
//     cout.tie(nullptr); cerr.tie(nullptr);
    

//     return 0;   
// }

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 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Incorrect 0 ms 344 KB Not correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Incorrect 0 ms 344 KB Not correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Incorrect 0 ms 344 KB Not correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Incorrect 0 ms 344 KB Not correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Incorrect 0 ms 344 KB Not correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Incorrect 0 ms 344 KB Not correct
6 Halted 0 ms 0 KB -