Submission #163178

#TimeUsernameProblemLanguageResultExecution timeMemory
163178cerberusOn the Grid (FXCUP4_grid)C++17
100 / 100
17 ms396 KiB
/* cerberus97 - Hanit Banga */ #include <iostream> #include <iomanip> #include <cassert> #include <cmath> #include <cstdio> #include <cstring> #include <cstdlib> #include <map> #include <set> #include <queue> #include <stack> #include <vector> #include <algorithm> #include <numeric> #include "grid.h" using namespace std; #define pb push_back #define fast_cin() ios_base::sync_with_stdio(false); cin.tie(NULL) typedef long long ll; typedef long double ld; typedef pair <int, int> pii; typedef pair <ll, ll> pll; const int N = 1e3 + 10; vector<int> SortDisks(int n) { vector<int> perm(n), ans(n); vector<bool> used(n, false); iota(perm.begin(), perm.end(), 0); int p_val = PutDisks(perm); int cnt = n; while (p_val > n) { rotate(perm.begin(), perm.begin() + cnt - 1, perm.begin() + cnt); int val = PutDisks(perm); if (val >= p_val) { ans[perm[0]] = val - n + 1; rotate(perm.begin(), perm.begin() + 1, perm.begin() + cnt); --cnt; sort(perm.begin() + cnt, perm.begin() + n, [&] (int x, int y) { return ans[x] < ans[y]; }); } else { p_val = val; } } for (int i = 0; i < n; ++i) { ans[perm[i]] = i + 1; } // for (int i = 0; i < n; ++i) { // cout << ans[i] << ' '; // } // cout << endl; return ans; // int X = PutDisks(std::vector<int>{0,2,3,1}); // return std::vector<int>{1,X,2,3}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...