이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/**
____ ____ ____ ____ ____ ____
||l |||e |||i |||n |||a |||d ||
||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|
**/
#include<bits/stdc++.h>
#define endl '\n'
#include "nice_lines.h"
using namespace std;
const int V = 1e4 + 10;
const long double eps = 1e-9;
struct point
{
long double x, y;
point(long double _x = 0, long double _y = 0)
{
x = _x;
y = _y;
}
};
struct line
{
point A, B;
long double k, m;
line(point _A, point _B)
{
A = _A;
B = _B;
k = (B.y - A.y) / (B.x - A.x);
/// k * A.x + m = A.y
m = A.y - A.x * k;
}
};
point intersection(line l1, line l2)
{
long double x = (l2.m - l1.m) / (l1.k - l2.k), y = l1.k * x + l1.m;
return point(x, y);
}
void solve(int subtask_id, int N)
{
point A1(3 * V * V, query(3 * V, 3 * V * V)), B1(3 * V * V + 1, query(3 * V, 3 * V * V + 1));
line l1(A1, B1);
point A2(- 3 * V * V, query(3 * V, - 3 * V * V)), B2(- 3 * V * V + 1, query(3 * V, - 3 * V * V + 1));
line l2(A2, B2);
point p = intersection(l1, l2);
vector < int > a, b;
int d = round(p.x);
for (int pa = -V; pa < V; pa ++)
{
int lf = d - pa * 3 * V;
if (lf > - V && lf < V)
{
a.push_back(pa);
b.push_back(lf);
break;
}
}
the_lines_are(a, b);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |