# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1120165 | vjudge1 | Art Collections (BOI22_art) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "art.h"
using namespace std;
//
// --- 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
//
double t = 1.0;
double rnd() {
return double(rand()) / RAND_MAX;
}
void solve(int n) {
srand(time(0));
vector <int> order;
for (int i = 1; i <= n; i++) {
order.push_back(i);
}
int ans = publish(order);
while(ans > 0) {
t *= 0.99;
vector <int> v = order;
swap(v[rand() % n], v[rand() % n]);
int sum = publish(v);
if (sum < ans || rnd() < exp((ans - sum) / t)) {
ans = sum;
order = v;
}
}
answer(order);
}