Submission #1297665

#TimeUsernameProblemLanguageResultExecution timeMemory
1297665ThunnusNicelines (RMI20_nicelines)C++20
0 / 100
1 ms408 KiB
#include "nice_lines.h" #include<bits/stdc++.h> #pragma GCC optimize("unroll-loops,O3") using namespace std; using i64 = long long; //#define int i64 #define vi vector<int> #define vvi vector<vi> #define vb vector<bool> #define se second #define fi first #define pii pair<int, int> #define sz(x) (int)(x).size() #define double long double const double INF = 2e12; void solve(int sid, int n){ i64 lo = -INF, hi = INF, m1, m2; while(hi > lo + 1){ m1 = lo + (hi - lo) / 3; m2 = hi - (hi - lo) / 3; double q1 = query(0, m1), q2 = query(0, q2); if(q1 > q2){ lo = m1 + 1; } else{ hi = m2 - 1; } } int b = 0; for(int i = lo; i <= hi; i++){ if(query(0, i) == 0){ b = i; break; } } int y = 1; if(y == b) y++; lo = -INF, hi = INF; while(hi > lo + 1){ m1 = lo + (hi - lo) / 3; m2 = hi - (hi - lo) / 3; double q1 = query(m1, y), q2 = query(m2, y); if(q1 > q2){ lo = m1 + 1; } else{ hi = m2 - 1; } } int a = 0; for(int i = lo; i <= hi; i++){ if(query(i, y) == 0){ a = i; break; } } int slope = (a - b) / (y - 0); vi av, bv; av.emplace_back(slope), bv.emplace_back(b); the_lines_are(av, bv); return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...