Submission #828426

# Submission time Handle Problem Language Result Execution time Memory
828426 2023-08-17T09:28:42 Z rainboy Nicelines (RMI20_nicelines) C
33.1814 / 100
30 ms 284 KB
#include "nice_lines_c.h"
#include <math.h>

#define N	100
#define M	10000
#define X	(M * 2 + 1)
#define Y	((long long) M * X + M + 1)

typedef long double ld;

void solve(int subtask_id, int n) {
	static int aa[N], bb[N];
	long long y, y1, lower, upper, a, b;
	ld z, z1, z2;
	int i;

	y1 = -Y, z1 = query(X, y1), z2 = query(X, y1 + 1);
	for (i = 0; i < n; i++) {
		lower = y1, upper = Y + 1;
		while (upper - lower > 1) {
			y = (lower + upper) / 2;
			z = query(X, y);
			if (fabsl((z - z1) / (y - y1) - (z2 - z1)) < 1e-12)
				lower = y;
			else
				upper = y;
		}
		y1 = lower, z1 = query(X, y1), z2 = query(X, y1 + 1);
		a = lower / X, b = y1 - a * X;
		while (b > M)
			a++, b -= X;
		while (b < -M)
			a--, b += X;
		aa[i] = a, bb[i] = b;
	}
	the_lines_are(aa, bb);
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 284 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 0 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 208 KB Incorrect
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 208 KB Incorrect
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 30 ms 208 KB Incorrect
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 12 ms 208 KB Output is partially correct
2 Partially correct 12 ms 208 KB Output is partially correct
3 Partially correct 9 ms 208 KB Output is partially correct
4 Partially correct 12 ms 284 KB Output is partially correct
# Verdict Execution time Memory Grader output
1 Incorrect 30 ms 208 KB Incorrect
2 Halted 0 ms 0 KB -