Submission #1201641

#TimeUsernameProblemLanguageResultExecution timeMemory
1201641tralalero_tralalaFinding Routers (IOI20_routers)C++20
100 / 100
1 ms584 KiB
#include "routers.h" #include <bits/stdc++.h> #define _ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define fore(i,a,b) for(lli i = (a), abcdxd = (b); i < abcdxd; i++) #define f first #define s second #define ENDL '\n' #define pb push_back #define sz(s) lli((s).size()) #define all(v) (v).begin(), (v).end() #define rall(v) (v).rbegin(), (v).rend() using namespace std; typedef int lli; // typedef long long LLI; typedef pair<lli,lli> ii; typedef vector<lli> vi; typedef vector<ii> vii; typedef long double ld; #define deb(x) cout << #x << ": " << x << endl; #define BIGLLI __int128 typedef vector<vi> mtrx; const lli INF = 1e9 + 12; const lli N = 1e5 + 5; lli p[N]; // lli st = 0; void dfs(lli l, lli r, lli lid, lli rid){ // cout << l << ' ' << r << endl; p[lid] = max(p[lid], l); p[rid] = max(p[rid], r); // st++; if (lid == rid) return; if ((l + 1) >= r) return; assert(l < r); lli m = (r + l) / 2; lli mid = use_detector(m); dfs(l, m, lid, mid); // lli sid = use_detector(m+1); dfs(m, r, mid, rid); } vector<int> find_routers(int l, int n, int q) { // cout << "ini :)" << endl; for (auto & i : p) i = -INF; dfs(0, l, 0, n-1); // deb(st); vi ans(n); ans[0] = 0; // fore(i,0,n) cout << p[i] << endl; fore(i,1,n){ ans[i] = ans[i-1] + (2 * (p[i - 1] - ans[i - 1])); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...