QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#101755#5667. Meeting PlaceswnmrmrAC ✓260ms5544kbC++208.6kb2023-05-01 03:48:352023-05-01 03:48:37

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-01 03:48:37]
  • 评测
  • 测评结果:AC
  • 用时:260ms
  • 内存:5544kb
  • [2023-05-01 03:48:35]
  • 提交

answer

//#pragma GCC optimize("O3,unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")

#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using ld = long double;
#define int ll
#define double ld
#define endl '\n'
#define all(v) v.begin(), v.end()
#define pb push_back

void dbg_out() { cerr << endl; }
template <typename H, typename... T>
void dbg_out(H h, T... t) { cerr << ' ' << h; dbg_out(t...); }
#define dbg(...) { cerr << #__VA_ARGS__ << ':'; dbg_out(__VA_ARGS__); }

// Double geometry
// WARNING: INPUT IN DOUBLE IS SLOW, IF POSSIBLE READ WITH INTEGER

constexpr double EPS = 1e-10;

bool zero(double x) {
	return abs(x) <= EPS;
}

// CORNER: point = (0, 0)
struct point {
	double x, y;
	
	point(): x(), y() {}
	point(double _x, double _y): x(_x), y(_y) {}
	
	point operator+(point rhs) { return point(x+rhs.x, y+rhs.y); }
	point operator-(point rhs) { return point(x-rhs.x, y-rhs.y); }
	point operator*(double k) { return point(x*k, y*k); }
	point operator/(double k) { return point(x/k, y/k); }
	double operator*(point rhs) { return x*rhs.x + y*rhs.y; }
	double operator^(point rhs) { return x*rhs.y - y*rhs.x; }

	point rotated(point polar) { return point(*this^polar,*this*polar); }
	point rotated(double ang) { return (*this).rotated(point(sin(ang),cos(ang))); }
	double norm2() { return *this * *this; }
	double norm() { return sqrt(norm2()); }

	bool operator<(const point& rhs) const {
		return x < rhs.x - EPS || (zero(x-rhs.x) && y < rhs.y - EPS);
	}

	bool operator==(const point& rhs) const {
		return zero(x-rhs.x) && zero(y-rhs.y);
	}
};

const point ccw90(1, 0), cw90(-1, 0);

// angular comparison in [0, 2pi)
// smallest is (1, 0)
// CORNER: a || b == (0, 0)
bool ang_cmp(point a, point b) {
	auto quad = [](point p) -> bool {
		// 0 if ang in [0, pi), 1 if in [pi, 2pi)
		return p.y < 0 || (p.y == 0 && p.x < 0);
	};
	using tup = tuple<bool, double>;
	return tup{quad(a), 0} < tup{quad(b), a^b};
}

double dist2(point p, point q) { // squared distance
    return (p - q)*(p - q);
}

double dist(point p, point q) {
    return sqrt(dist2(p, q));
}

double area2(point a, point b, point c) { // two times signed area of triangle abc
	return (b - a) ^ (c - a);
}

bool left(point a, point b, point c) {
	return area2(a, b, c) > EPS; // counterclockwise
}

bool right(point a, point b, point c) {
	return area2(a, b, c) < -EPS; // clockwise
}

bool collinear(point a, point b, point c) {
	return zero(area2(a,b,c));
}

// CORNER: a || b == (0, 0)
int parallel(point a, point b) {
	if(!zero(a ^ b)) return 0;
	return (a.x>0) == (b.x>0) && (a.y > 0) == (b.y > 0) ? 1 : -1;
}

// CORNER: a == b
struct segment {
	point a, b;

	segment() {}
	segment(point _a, point _b): a(_a), b(_b) {}

	point vec() { return b - a; }

	bool contains(point p) {
		return a == p || b == p || parallel(a-p, b-p) == -1;
	}

	point proj(point p) { // projection of p onto segment
		p = p - a;
		point v = vec();
		return a + v*((p*v)/(v*v));
	}

};

bool intersects(segment r, segment s) {
	if(r.contains(s.a) || r.contains(s.b) || s.contains(r.a) || s.contains(r.b)) return 1;
	return left(r.a, r.b, s.a) != left(r.a, r.b, s.b) && 
		left(s.a, s.b, r.a) != left(s.a, s.b, r.b);
}

bool parallel(segment r, segment s) {
	return parallel(r.vec(), s.vec());
}

point line_intersection(segment r, segment s) {
	if(parallel(r, s)) return point(HUGE_VAL, HUGE_VAL);
	point vr = r.vec(), vs = s.vec();
	double cr = vr ^ r.a, cs = vs ^ s.a;
	return (vs*cr - vr*cs) / (vr ^ vs);
}

struct polygon {
	vector<point> vp;
	int n;

	polygon(vector<point>& _vp): vp(_vp), n(vp.size()) {
		if(area2() < -EPS) reverse(all(_vp));
	}

	int nxt(int i) { return i+1<n ? i+1 : 0; }
	int prv(int i) { return i ? i-1 : 0; }

	// If positive, the polygon is in ccw order. It is in cw order otherwise.
	double area2() { // O(n
		double acum = 0;
		for(int i = 0; i < n; i++)
			acum += vp[i] ^ vp[nxt(i)];
		return acum;
	}

	bool has(point p) { // O(log n). The polygon must be convex and in ccw order
		if(right(vp[0], vp[1], p) || left(vp[0], vp[n-1], p)) return 0;
		int lo = 1, hi = n;
		while(lo + 1 < hi) {
			int mid = (lo + hi) / 2;
			if(!right(vp[0], vp[mid], p)) lo = mid;
			else hi = mid;
		}
		return hi != n ? !right(vp[lo], vp[hi], p) : dist2(vp[0], p) < dist2(vp[0], vp[n-1]) + EPS;
	}

	double calipers() { // O(n). The polygon must be convex and in ccw order.
		double ans = 0;
		for(int i = 0, j = 1; i < n; i++) {
			point v = vp[nxt(i)] - vp[i];
			while((v ^ (vp[nxt(j)] - vp[j])) > EPS) j = nxt(j);
			// do something with vp[i] and vp[j]
			ans = max(ans, dist2(vp[i], vp[j])); // Example with polygon diameter squared
		}
		return ans;
	}

	// returns the maximal point using comparator cmp
	// example: 
	// 	extreme([&](point p, point q) {return p * v > q * v;});
	// 	returns point with maximal dot product with v
	int extreme(const function<bool(point, point)> &cmp) {
		auto is_extreme = [&](int i, bool& cur_dir) -> bool {
			cur_dir = cmp(vp[nxt(i)], vp[i]);
			return !cmp(vp[prv(i)], vp[i]) && !cur_dir;
		};
		bool last_dir, cur_dir;
		if(is_extreme(0, last_dir)) return 0;
		int lo = 0, hi = n; 
		while(lo + 1 < hi) {
			int m = (lo + hi) / 2;
			if(is_extreme(m, cur_dir)) return m;
			bool rel_dir = cmp(vp[m], vp[lo]);
			if((!last_dir && cur_dir) || (last_dir == cur_dir && rel_dir == cur_dir)) {
				lo = m;
				last_dir = cur_dir;
			} else hi = m;
		}
		return lo;
	}

	pair<int, int> tangent(point p) { // O(log n) for convex polygon in ccw orientation
		// Finds the indices of the two tangents to an external point q
		auto left_tangent = [&](point r, point s) -> bool {
			return right(p, r, s);
		};
		auto right_tangent = [&](point r, point s) -> bool {
			return left(p, r, s);
		};
		return {extreme(left_tangent), extreme(right_tangent)};
	}

	void normalize() { // p[0] becomes the lowest leftmost point 
		rotate(vp.begin(), min_element(all(vp)), vp.end());
	}

	polygon operator+(polygon& rhs) { // Minkowsky sum
		normalize();
		rhs.normalize();
		vector<point> sum;
		double dir;
		for(int i = 0, j = 0; i < n || j < rhs.n; i += dir > -EPS, j += dir < EPS) {
			sum.push_back(vp[i % n] + rhs.vp[j % rhs.n]);
			dir = (vp[(i + 1) % n] - vp[i % n]) 
				^ (rhs.vp[(j + 1) % rhs.n] - rhs.vp[j % rhs.n]);
		}
		return polygon(sum);
	}
};
// Circle
//  Basic structure of circle and operations related with it.
// 
// All operations' time complexity are O(1)

const double PI = acos(-1);

struct circle {
	point o; double r;

	circle() {}
	circle(point _o, double _r) : o(_o), r(_r) {}
	circle(point a, point b, point c) {
		b = b - a;
		c = c - a;
		double B = b.norm2();
		double C = c.norm2();
		double D = b ^ c;
		assert(abs(D) > EPS);
		o = a + point( (c.y*B - b.y*C) / (2*D), (b.x * C - c.x * B) / (2*D) );
		r = (o-a).norm();
	}

	bool has(point p) { 
		return (o - p).norm2() < r*r + EPS;
	}
	vector<point> operator/(circle c) { // Intersection of circles.
		vector<point> inter;                   // The points in the output are in ccw order.
		double d = (o - c.o).norm();
		if(r + c.r < d - EPS || d + min(r, c.r) < max(r, c.r) - EPS)
			return {};
		double x = (r*r - c.r*c.r + d*d) / (2*d);
		double y = sqrt(r*r - x*x);
		point v = (c.o - o) / d;
		inter.pb(o + v*x + v.rotated(cw90)*y);
		if(y > EPS) inter.pb(o + v*x + v.rotated(ccw90)*y);
		return inter;
	}
	vector<point> tang(point p){
		double d = sqrt(dist2(p, o) - r*r);
		return *this / circle(p, d);
	}
	bool contains(point p){ // non strictly inside
		double d = dist2(o, p);
		return d < r * r + EPS;
	}
};

void solve() {
	int n, ops, _var; 
	cin >> n >> ops >> _var;
	auto read = [&]() -> int {
		int res = _var;
		_var = (_var * 233811181 + 1) % ( (1ll<<31) - 1 );
		return res;
	};
	vector<point> vp(n);
	for(auto &[x, y]: vp) {
		int _x = read();
		int _y = read();
		x = _x;
		y = _y;
	}

	vector<vector<pair<double, int>>> tr(n);
	for(int ini=0;ini<n;ini++) {
		circle c(vp[ini], 0);
		auto &[o, r] = c;

		auto &cur = tr[ini];

		for(int i=ini;i<n;i++) if (!c.contains(vp[i])) {
			cur.emplace_back(r, i-1);
			o = vp[i], r = 0;
			for(int j=ini;j<i;j++) if (!c.contains(vp[j])) {
				o = (vp[i] + vp[j]) / 2;
				r = dist(o, vp[i]);
				for(int k=ini;k<j;k++) if(!c.contains(vp[k]))
					c = circle(vp[i], vp[j], vp[k]);
			}
		}
		cur.emplace_back(r, n-1);
	}

	const double INF = 1e18;
	vector<double> cur(n, INF), nxt(n, INF);
	for(auto &[cost, i]: tr[0]) {
		cur[i] = cost;
	}
	double ans = cur.back();

	for(int _=0;_<ops-1;_++) {
		fill(all(nxt), INF);
		for(int i=0;i<n-1;i++) if(cur[i] != INF) {
			for(auto &[cost, j]: tr[i+1]) {
				if(cur[i] + cost < EPS) {
				}
				nxt[j] = min(nxt[j], cur[i] + cost);
			}
		}
		swap(cur, nxt);
		ans = min(ans, cur.back());
	}
	cout << fixed << setprecision(10);
	cout << ans << '\n';
}

signed main() {
	ios::sync_with_stdio(false); cin.tie(0);
	solve();
}

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 3664kb

input:

100 23 213

output:

1319350480.8007325387

result:

ok found '1319350480.8007326', expected '1319350480.8007326', error '0.0000000'

Test #2:

score: 0
Accepted
time: 2ms
memory: 3592kb

input:

10 1 1060

output:

1042753143.3451676866

result:

ok found '1042753143.3451676', expected '1042753143.3451676', error '0.0000000'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3700kb

input:

10 10 2373

output:

0.0000000000

result:

ok found '0.0000000', expected '0.0000000', error '-0.0000000'

Test #4:

score: 0
Accepted
time: 2ms
memory: 3700kb

input:

10 2 3396

output:

1236610536.9469230312

result:

ok found '1236610536.9469230', expected '1236610536.9469230', error '0.0000000'

Test #5:

score: 0
Accepted
time: 2ms
memory: 3716kb

input:

10 3 1998

output:

973790809.8224442275

result:

ok found '973790809.8224442', expected '973790809.8224442', error '0.0000000'

Test #6:

score: 0
Accepted
time: 0ms
memory: 3612kb

input:

10 4 562

output:

910867389.9069329376

result:

ok found '910867389.9069330', expected '910867389.9069330', error '0.0000000'

Test #7:

score: 0
Accepted
time: 2ms
memory: 3584kb

input:

10 5 6048

output:

818240814.7105149820

result:

ok found '818240814.7105150', expected '818240814.7105150', error '0.0000000'

Test #8:

score: 0
Accepted
time: 2ms
memory: 3596kb

input:

10 6 2524

output:

500106979.3467762744

result:

ok found '500106979.3467762', expected '500106979.3467762', error '0.0000000'

Test #9:

score: 0
Accepted
time: 2ms
memory: 3580kb

input:

10 7 5415

output:

559478971.4320058867

result:

ok found '559478971.4320059', expected '559478971.4320059', error '0.0000000'

Test #10:

score: 0
Accepted
time: 2ms
memory: 3756kb

input:

10 8 1438

output:

500309745.4627699936

result:

ok found '500309745.4627700', expected '500309745.4627700', error '0.0000000'

Test #11:

score: 0
Accepted
time: 2ms
memory: 3580kb

input:

10 9 3172

output:

162279748.8753451739

result:

ok found '162279748.8753452', expected '162279748.8753452', error '0.0000000'

Test #12:

score: 0
Accepted
time: 2ms
memory: 3656kb

input:

100 1 8316

output:

1320052902.1522902527

result:

ok found '1320052902.1522903', expected '1320052902.1522903', error '0.0000000'

Test #13:

score: 0
Accepted
time: 1ms
memory: 3632kb

input:

100 100 4179

output:

0.0000000000

result:

ok found '0.0000000', expected '0.0000000', error '-0.0000000'

Test #14:

score: 0
Accepted
time: 2ms
memory: 3824kb

input:

100 12 3405

output:

1329687126.1304548786

result:

ok found '1329687126.1304548', expected '1329687126.1304548', error '0.0000000'

Test #15:

score: 0
Accepted
time: 1ms
memory: 3764kb

input:

100 16 8378

output:

1338056514.4842694717

result:

ok found '1338056514.4842694', expected '1338056514.4842694', error '0.0000000'

Test #16:

score: 0
Accepted
time: 2ms
memory: 3656kb

input:

100 2 1858

output:

1310392496.1430580794

result:

ok found '1310392496.1430581', expected '1310392496.1430581', error '0.0000000'

Test #17:

score: 0
Accepted
time: 0ms
memory: 3824kb

input:

100 25 4596

output:

1440464106.6229296720

result:

ok found '1440464106.6229296', expected '1440464106.6229298', error '0.0000000'

Test #18:

score: 0
Accepted
time: 0ms
memory: 3624kb

input:

100 3 5633

output:

1399621082.6142736834

result:

ok found '1399621082.6142738', expected '1399621082.6142738', error '0.0000000'

Test #19:

score: 0
Accepted
time: 2ms
memory: 3660kb

input:

100 32 7827

output:

1342073760.5322329637

result:

ok found '1342073760.5322330', expected '1342073760.5322330', error '0.0000000'

Test #20:

score: 0
Accepted
time: 2ms
memory: 3632kb

input:

100 4 3693

output:

1339808706.7098688791

result:

ok found '1339808706.7098689', expected '1339808706.7098689', error '0.0000000'

Test #21:

score: 0
Accepted
time: 2ms
memory: 3624kb

input:

100 5 2252

output:

1394874243.5057042023

result:

ok found '1394874243.5057042', expected '1394874243.5057042', error '0.0000000'

Test #22:

score: 0
Accepted
time: 0ms
memory: 3720kb

input:

100 50 4254

output:

1322809748.4052835440

result:

ok found '1322809748.4052835', expected '1322809748.4052832', error '0.0000000'

Test #23:

score: 0
Accepted
time: 2ms
memory: 3636kb

input:

100 6 53

output:

1364441356.1700988172

result:

ok found '1364441356.1700988', expected '1364441356.1700988', error '0.0000000'

Test #24:

score: 0
Accepted
time: 1ms
memory: 3740kb

input:

100 64 4337

output:

1180754550.2422839039

result:

ok found '1180754550.2422838', expected '1180754550.2422838', error '0.0000000'

Test #25:

score: 0
Accepted
time: 2ms
memory: 3656kb

input:

100 7 5366

output:

1423557626.3586797034

result:

ok found '1423557626.3586798', expected '1423557626.3586798', error '0.0000000'

Test #26:

score: 0
Accepted
time: 2ms
memory: 3764kb

input:

100 8 8509

output:

1353289305.3519955645

result:

ok found '1353289305.3519955', expected '1353289305.3519957', error '0.0000000'

Test #27:

score: 0
Accepted
time: 1ms
memory: 3656kb

input:

100 9 1423

output:

1228887266.5661669594

result:

ok found '1228887266.5661669', expected '1228887266.5661671', error '0.0000000'

Test #28:

score: 0
Accepted
time: 3ms
memory: 3808kb

input:

100 91 4806

output:

656574218.5086755045

result:

ok found '656574218.5086755', expected '656574218.5086756', error '0.0000000'

Test #29:

score: 0
Accepted
time: 1ms
memory: 3684kb

input:

100 92 4024

output:

794693428.6162240338

result:

ok found '794693428.6162241', expected '794693428.6162238', error '0.0000000'

Test #30:

score: 0
Accepted
time: 3ms
memory: 3700kb

input:

100 93 606

output:

677641787.4863122115

result:

ok found '677641787.4863123', expected '677641787.4863122', error '0.0000000'

Test #31:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

100 94 7265

output:

686423239.2626027704

result:

ok found '686423239.2626028', expected '686423239.2626028', error '0.0000000'

Test #32:

score: 0
Accepted
time: 3ms
memory: 3828kb

input:

100 95 8469

output:

328187125.9235950687

result:

ok found '328187125.9235951', expected '328187125.9235951', error '0.0000000'

Test #33:

score: 0
Accepted
time: 2ms
memory: 3624kb

input:

100 96 1079

output:

492964787.6259085392

result:

ok found '492964787.6259086', expected '492964787.6259086', error '0.0000000'

Test #34:

score: 0
Accepted
time: 1ms
memory: 3664kb

input:

100 97 5453

output:

258652807.7906564699

result:

ok found '258652807.7906565', expected '258652807.7906564', error '0.0000000'

Test #35:

score: 0
Accepted
time: 2ms
memory: 3800kb

input:

100 98 1778

output:

159490192.1188906933

result:

ok found '159490192.1188907', expected '159490192.1188908', error '0.0000000'

Test #36:

score: 0
Accepted
time: 2ms
memory: 3628kb

input:

100 99 1825

output:

33793756.3289980424

result:

ok found '33793756.3289980', expected '33793756.3289980', error '0.0000000'

Test #37:

score: 0
Accepted
time: 8ms
memory: 4432kb

input:

1000 1 2453

output:

1486878333.2858574132

result:

ok found '1486878333.2858574', expected '1486878333.2858574', error '0.0000000'

Test #38:

score: 0
Accepted
time: 44ms
memory: 4308kb

input:

1000 1000 1798

output:

0.0000000000

result:

ok found '0.0000000', expected '0.0000000', error '-0.0000000'

Test #39:

score: 0
Accepted
time: 25ms
memory: 4312kb

input:

1000 125 43

output:

1474031969.5174233053

result:

ok found '1474031969.5174234', expected '1474031969.5174232', error '0.0000000'

Test #40:

score: 0
Accepted
time: 22ms
memory: 4352kb

input:

1000 128 8107

output:

1440374614.9391976207

result:

ok found '1440374614.9391975', expected '1440374614.9391975', error '0.0000000'

Test #41:

score: 0
Accepted
time: 31ms
memory: 4468kb

input:

1000 15 6639

output:

1491336935.5536249471

result:

ok found '1491336935.5536249', expected '1491336935.5536251', error '0.0000000'

Test #42:

score: 0
Accepted
time: 27ms
memory: 4516kb

input:

1000 16 1251

output:

1445211807.1160963748

result:

ok found '1445211807.1160963', expected '1445211807.1160963', error '0.0000000'

Test #43:

score: 0
Accepted
time: 20ms
memory: 4444kb

input:

1000 2 1303

output:

1468989868.6486022632

result:

ok found '1468989868.6486022', expected '1468989868.6486022', error '0.0000000'

Test #44:

score: 0
Accepted
time: 23ms
memory: 4264kb

input:

1000 250 4457

output:

1487674970.7660159559

result:

ok found '1487674970.7660160', expected '1487674970.7660158', error '0.0000000'

Test #45:

score: 0
Accepted
time: 31ms
memory: 4556kb

input:

1000 256 4135

output:

1474218271.5140772276

result:

ok found '1474218271.5140772', expected '1474218271.5140772', error '0.0000000'

Test #46:

score: 0
Accepted
time: 17ms
memory: 4288kb

input:

1000 3 713

output:

1482496228.9904776600

result:

ok found '1482496228.9904776', expected '1482496228.9904778', error '0.0000000'

Test #47:

score: 0
Accepted
time: 14ms
memory: 4476kb

input:

1000 31 8139

output:

1494361943.4799194892

result:

ok found '1494361943.4799194', expected '1494361943.4799194', error '0.0000000'

Test #48:

score: 0
Accepted
time: 16ms
memory: 4328kb

input:

1000 32 7916

output:

1499333171.0938647797

result:

ok found '1499333171.0938647', expected '1499333171.0938647', error '0.0000000'

Test #49:

score: 0
Accepted
time: 14ms
memory: 4540kb

input:

1000 4 2432

output:

1455826569.0394102234

result:

ok found '1455826569.0394101', expected '1455826569.0394101', error '0.0000000'

Test #50:

score: 0
Accepted
time: 13ms
memory: 4388kb

input:

1000 5 2457

output:

1452189628.1967140646

result:

ok found '1452189628.1967142', expected '1452189628.1967139', error '0.0000000'

Test #51:

score: 0
Accepted
time: 37ms
memory: 4328kb

input:

1000 500 8734

output:

1432279300.5662784538

result:

ok found '1432279300.5662785', expected '1432279300.5662787', error '0.0000000'

Test #52:

score: 0
Accepted
time: 43ms
memory: 4556kb

input:

1000 512 1866

output:

1446804508.0351865209

result:

ok found '1446804508.0351865', expected '1446804508.0351865', error '0.0000000'

Test #53:

score: 0
Accepted
time: 12ms
memory: 4156kb

input:

1000 6 1580

output:

1490178756.8566034751

result:

ok found '1490178756.8566034', expected '1490178756.8566034', error '0.0000000'

Test #54:

score: 0
Accepted
time: 20ms
memory: 4336kb

input:

1000 62 3047

output:

1482100829.6467108954

result:

ok found '1482100829.6467109', expected '1482100829.6467109', error '0.0000000'

Test #55:

score: 0
Accepted
time: 20ms
memory: 4332kb

input:

1000 64 4836

output:

1441850815.8553613515

result:

ok found '1441850815.8553615', expected '1441850815.8553615', error '0.0000000'

Test #56:

score: 0
Accepted
time: 25ms
memory: 4388kb

input:

1000 7 5269

output:

1473104490.7287983542

result:

ok found '1473104490.7287984', expected '1473104490.7287984', error '0.0000000'

Test #57:

score: 0
Accepted
time: 17ms
memory: 4460kb

input:

1000 8 2649

output:

1459133296.6066234506

result:

ok found '1459133296.6066234', expected '1459133296.6066234', error '0.0000000'

Test #58:

score: 0
Accepted
time: 15ms
memory: 4224kb

input:

1000 9 3999

output:

1482914523.3807039035

result:

ok found '1482914523.3807039', expected '1482914523.3807039', error '0.0000000'

Test #59:

score: 0
Accepted
time: 36ms
memory: 4308kb

input:

1000 991 3610

output:

295501032.4780874289

result:

ok found '295501032.4780874', expected '295501032.4780874', error '0.0000000'

Test #60:

score: 0
Accepted
time: 45ms
memory: 4508kb

input:

1000 992 3030

output:

337274092.6540381879

result:

ok found '337274092.6540382', expected '337274092.6540381', error '0.0000000'

Test #61:

score: 0
Accepted
time: 45ms
memory: 4332kb

input:

1000 993 6980

output:

222375113.1057986107

result:

ok found '222375113.1057986', expected '222375113.1057986', error '0.0000000'

Test #62:

score: 0
Accepted
time: 44ms
memory: 4472kb

input:

1000 994 7222

output:

218007091.6933040881

result:

ok found '218007091.6933041', expected '218007091.6933041', error '0.0000000'

Test #63:

score: 0
Accepted
time: 45ms
memory: 4324kb

input:

1000 995 1323

output:

169577520.2236528745

result:

ok found '169577520.2236529', expected '169577520.2236529', error '0.0000000'

Test #64:

score: 0
Accepted
time: 35ms
memory: 4236kb

input:

1000 996 2761

output:

135524743.9114487152

result:

ok found '135524743.9114487', expected '135524743.9114488', error '0.0000000'

Test #65:

score: 0
Accepted
time: 40ms
memory: 4304kb

input:

1000 997 4946

output:

87043806.4227920886

result:

ok found '87043806.4227921', expected '87043806.4227921', error '0.0000000'

Test #66:

score: 0
Accepted
time: 35ms
memory: 4396kb

input:

1000 998 842

output:

24094936.5511916879

result:

ok found '24094936.5511917', expected '24094936.5511917', error '0.0000000'

Test #67:

score: 0
Accepted
time: 40ms
memory: 4304kb

input:

1000 999 5078

output:

4597519.0646550341

result:

ok found '4597519.0646550', expected '4597519.0646550', error '0.0000000'

Test #68:

score: 0
Accepted
time: 58ms
memory: 5484kb

input:

2000 1 2633

output:

1502350354.4995269895

result:

ok found '1502350354.4995270', expected '1502350354.4995270', error '0.0000000'

Test #69:

score: 0
Accepted
time: 148ms
memory: 5236kb

input:

2000 1000 6248

output:

1469507093.4042110490

result:

ok found '1469507093.4042110', expected '1469507093.4042110', error '0.0000000'

Test #70:

score: 0
Accepted
time: 134ms
memory: 5188kb

input:

2000 1024 2507

output:

1448066815.3184789366

result:

ok found '1448066815.3184788', expected '1448066815.3184788', error '0.0000000'

Test #71:

score: 0
Accepted
time: 103ms
memory: 5460kb

input:

2000 125 3002

output:

1476846542.0318910533

result:

ok found '1476846542.0318911', expected '1476846542.0318909', error '0.0000000'

Test #72:

score: 0
Accepted
time: 69ms
memory: 5260kb

input:

2000 128 5622

output:

1464957942.6400379967

result:

ok found '1464957942.6400380', expected '1464957942.6400380', error '0.0000000'

Test #73:

score: 0
Accepted
time: 45ms
memory: 5168kb

input:

2000 15 5891

output:

1490626300.1558671650

result:

ok found '1490626300.1558671', expected '1490626300.1558671', error '0.0000000'

Test #74:

score: 0
Accepted
time: 50ms
memory: 5292kb

input:

2000 16 1750

output:

1504400245.4149806678

result:

ok found '1504400245.4149806', expected '1504400245.4149806', error '0.0000000'

Test #75:

score: 0
Accepted
time: 187ms
memory: 5496kb

input:

2000 1990 6698

output:

313951388.4046511542

result:

ok found '313951388.4046512', expected '313951388.4046511', error '0.0000000'

Test #76:

score: 0
Accepted
time: 162ms
memory: 5164kb

input:

2000 1991 80

output:

248800118.6793060585

result:

ok found '248800118.6793061', expected '248800118.6793060', error '0.0000000'

Test #77:

score: 0
Accepted
time: 175ms
memory: 5140kb

input:

2000 1992 4802

output:

257156356.5216794969

result:

ok found '257156356.5216795', expected '257156356.5216795', error '0.0000000'

Test #78:

score: 0
Accepted
time: 181ms
memory: 5328kb

input:

2000 1993 169

output:

197117968.4482248139

result:

ok found '197117968.4482248', expected '197117968.4482248', error '0.0000000'

Test #79:

score: 0
Accepted
time: 176ms
memory: 5372kb

input:

2000 1994 6269

output:

109695555.8088500974

result:

ok found '109695555.8088501', expected '109695555.8088501', error '0.0000000'

Test #80:

score: 0
Accepted
time: 177ms
memory: 5368kb

input:

2000 1995 3452

output:

179563229.3967842731

result:

ok found '179563229.3967843', expected '179563229.3967843', error '0.0000000'

Test #81:

score: 0
Accepted
time: 260ms
memory: 5368kb

input:

2000 1996 2191

output:

84783513.6455895729

result:

ok found '84783513.6455896', expected '84783513.6455896', error '0.0000000'

Test #82:

score: 0
Accepted
time: 185ms
memory: 5352kb

input:

2000 1997 7803

output:

53635859.3399899750

result:

ok found '53635859.3399900', expected '53635859.3399900', error '0.0000000'

Test #83:

score: 0
Accepted
time: 215ms
memory: 5512kb

input:

2000 1998 8341

output:

33466185.8149442279

result:

ok found '33466185.8149442', expected '33466185.8149442', error '0.0000000'

Test #84:

score: 0
Accepted
time: 195ms
memory: 5428kb

input:

2000 1999 6773

output:

2608075.4652832613

result:

ok found '2608075.4652833', expected '2608075.4652833', error '0.0000000'

Test #85:

score: 0
Accepted
time: 50ms
memory: 5404kb

input:

2000 2 4496

output:

1484602254.1310011938

result:

ok found '1484602254.1310012', expected '1484602254.1310012', error '0.0000000'

Test #86:

score: 0
Accepted
time: 178ms
memory: 5252kb

input:

2000 2000 5384

output:

0.0000000000

result:

ok found '0.0000000', expected '0.0000000', error '-0.0000000'

Test #87:

score: 0
Accepted
time: 93ms
memory: 5336kb

input:

2000 250 1029

output:

1465117434.0631005594

result:

ok found '1465117434.0631006', expected '1465117434.0631006', error '0.0000000'

Test #88:

score: 0
Accepted
time: 62ms
memory: 5020kb

input:

2000 256 5220

output:

1481878242.2184739700

result:

ok found '1481878242.2184739', expected '1481878242.2184739', error '0.0000000'

Test #89:

score: 0
Accepted
time: 93ms
memory: 5392kb

input:

2000 3 8403

output:

1489320436.4318532230

result:

ok found '1489320436.4318533', expected '1489320436.4318533', error '0.0000000'

Test #90:

score: 0
Accepted
time: 65ms
memory: 5376kb

input:

2000 31 6950

output:

1477330995.2251310301

result:

ok found '1477330995.2251310', expected '1477330995.2251310', error '0.0000000'

Test #91:

score: 0
Accepted
time: 71ms
memory: 5280kb

input:

2000 32 3632

output:

1496222504.6490063224

result:

ok found '1496222504.6490064', expected '1496222504.6490064', error '0.0000000'

Test #92:

score: 0
Accepted
time: 82ms
memory: 5544kb

input:

2000 4 2987

output:

1477889007.5054590236

result:

ok found '1477889007.5054591', expected '1477889007.5054593', error '0.0000000'

Test #93:

score: 0
Accepted
time: 53ms
memory: 5336kb

input:

2000 5 2580

output:

1485468254.7374951143

result:

ok found '1485468254.7374952', expected '1485468254.7374952', error '0.0000000'

Test #94:

score: 0
Accepted
time: 118ms
memory: 5404kb

input:

2000 500 6270

output:

1475788271.0275987717

result:

ok found '1475788271.0275989', expected '1475788271.0275989', error '0.0000000'

Test #95:

score: 0
Accepted
time: 124ms
memory: 5284kb

input:

2000 512 1864

output:

1470340599.4749856532

result:

ok found '1470340599.4749856', expected '1470340599.4749856', error '0.0000000'

Test #96:

score: 0
Accepted
time: 50ms
memory: 5164kb

input:

2000 6 8814

output:

1497075189.0134960029

result:

ok found '1497075189.0134959', expected '1497075189.0134962', error '0.0000000'

Test #97:

score: 0
Accepted
time: 88ms
memory: 5404kb

input:

2000 62 4139

output:

1490927650.9732119518

result:

ok found '1490927650.9732120', expected '1490927650.9732120', error '0.0000000'

Test #98:

score: 0
Accepted
time: 59ms
memory: 5316kb

input:

2000 64 7700

output:

1494910912.6137834012

result:

ok found '1494910912.6137834', expected '1494910912.6137834', error '0.0000000'

Test #99:

score: 0
Accepted
time: 71ms
memory: 5472kb

input:

2000 7 8304

output:

1488325857.8219897182

result:

ok found '1488325857.8219898', expected '1488325857.8219898', error '0.0000000'

Test #100:

score: 0
Accepted
time: 41ms
memory: 5204kb

input:

2000 8 7774

output:

1507136513.1715590049

result:

ok found '1507136513.1715591', expected '1507136513.1715591', error '0.0000000'

Test #101:

score: 0
Accepted
time: 58ms
memory: 5292kb

input:

2000 9 2618

output:

1492019659.0373162708

result:

ok found '1492019659.0373163', expected '1492019659.0373163', error '0.0000000'

Test #102:

score: 0
Accepted
time: 2ms
memory: 3900kb

input:

500 1 7674

output:

1463672939.7812498501

result:

ok found '1463672939.7812498', expected '1463672939.7812500', error '0.0000000'

Test #103:

score: 0
Accepted
time: 7ms
memory: 3984kb

input:

500 125 1629

output:

1420736329.0838274076

result:

ok found '1420736329.0838275', expected '1420736329.0838273', error '0.0000000'

Test #104:

score: 0
Accepted
time: 4ms
memory: 3888kb

input:

500 15 7376

output:

1465677415.5063879169

result:

ok found '1465677415.5063879', expected '1465677415.5063879', error '0.0000000'

Test #105:

score: 0
Accepted
time: 6ms
memory: 4068kb

input:

500 250 5627

output:

1411074935.8823579514

result:

ok found '1411074935.8823578', expected '1411074935.8823581', error '0.0000000'

Test #106:

score: 0
Accepted
time: 7ms
memory: 3988kb

input:

500 3 2245

output:

1437079231.5409811666

result:

ok found '1437079231.5409811', expected '1437079231.5409811', error '0.0000000'

Test #107:

score: 0
Accepted
time: 4ms
memory: 3916kb

input:

500 31 8072

output:

1487957912.0314614202

result:

ok found '1487957912.0314615', expected '1487957912.0314612', error '0.0000000'

Test #108:

score: 0
Accepted
time: 8ms
memory: 3908kb

input:

500 62 2415

output:

1454787477.6493773755

result:

ok found '1454787477.6493773', expected '1454787477.6493773', error '0.0000000'

Test #109:

score: 0
Accepted
time: 8ms
memory: 3844kb

input:

500 7 1586

output:

1459900114.7046606799

result:

ok found '1459900114.7046607', expected '1459900114.7046607', error '0.0000000'