This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//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 (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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |