#include <bits/stdc++.h>
#include "nice_lines.h"
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<ld, ld> pdd;
#define fi first
#define se second
#define mp make_pair
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int X = (int)2e4 + 4;
const int B = 10000 * 1ll * X + 1;
const ld EPS = 1e-5;
map<ll, ld> st;
ld Q(ll x){
if(!st.count(x)) st[x] = query(X, x);
return st[x];
}
ld g(ll x){
return Q(x) - Q(x - 1);
}
vector<int> aa, bb;
int n;
void go(ll l, ll r, ld gl, ld gr){
if(abs(gl-gr) < EPS) return;
if(aa.size() == n) return;
if(l + 1 == r){
int B = (l % X + X) % X;
if(B > (int)1e4) B = -(X - B);
int A = (l - B) / X;
aa.push_back(A);
bb.push_back(B);
return;
}
ll mid = l + (r - l) / 2ll;
ld gm = g(mid);
if((int)rng() % 2 == 0){
if(abs(gm-gl) > EPS){
go(l, mid, gl, gm);
}
if(abs(gm-gr) > EPS){
go(mid, r, gm, gr);
}
}
else{
if(abs(gm-gr) > EPS){
go(mid, r, gm, gr);
}
if(abs(gm-gl) > EPS){
go(l, mid, gl, gm);
}
}
}
void solve(int _id, int _n){
n = _n;
go(-B, +B, g(-B), g(+B));
the_lines_are(aa, bb);
}
Compilation message
nicelines.cpp: In function 'void go(ll, ll, ld, ld)':
nicelines.cpp:39:18: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
39 | if(aa.size() == n) return;
| ~~~~~~~~~~^~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
308 KB |
Output is correct |
2 |
Correct |
2 ms |
208 KB |
Output is correct |
3 |
Correct |
1 ms |
208 KB |
Output is correct |
4 |
Correct |
1 ms |
208 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
284 KB |
Output is correct |
2 |
Correct |
2 ms |
300 KB |
Output is correct |
3 |
Correct |
2 ms |
208 KB |
Output is correct |
4 |
Correct |
2 ms |
208 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
240 KB |
Output is correct |
2 |
Correct |
2 ms |
208 KB |
Output is correct |
3 |
Correct |
3 ms |
328 KB |
Output is correct |
4 |
Correct |
3 ms |
208 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
48 ms |
512 KB |
Output is partially correct |
2 |
Partially correct |
56 ms |
456 KB |
Output is partially correct |
3 |
Partially correct |
56 ms |
476 KB |
Output is partially correct |
4 |
Partially correct |
57 ms |
548 KB |
Output is partially correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
16 ms |
336 KB |
Output is partially correct |
2 |
Partially correct |
16 ms |
336 KB |
Output is partially correct |
3 |
Partially correct |
19 ms |
336 KB |
Output is partially correct |
4 |
Partially correct |
21 ms |
364 KB |
Output is partially correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
48 ms |
512 KB |
Output is partially correct |
2 |
Partially correct |
56 ms |
456 KB |
Output is partially correct |
3 |
Partially correct |
56 ms |
476 KB |
Output is partially correct |
4 |
Partially correct |
57 ms |
548 KB |
Output is partially correct |
5 |
Partially correct |
16 ms |
336 KB |
Output is partially correct |
6 |
Partially correct |
16 ms |
336 KB |
Output is partially correct |
7 |
Partially correct |
19 ms |
336 KB |
Output is partially correct |
8 |
Partially correct |
21 ms |
364 KB |
Output is partially correct |
9 |
Partially correct |
61 ms |
680 KB |
Output is partially correct |
10 |
Partially correct |
66 ms |
624 KB |
Output is partially correct |
11 |
Partially correct |
73 ms |
540 KB |
Output is partially correct |
12 |
Partially correct |
53 ms |
548 KB |
Output is partially correct |