QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#572223 | #6401. Classic: N Real DNA Pots | zfasion# | WA | 1ms | 10084kb | C++14 | 1.5kb | 2024-09-18 13:08:35 | 2024-09-18 13:08:36 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const long long N = 3e6 + 20, M = 998244353;
#define eps 1e-12
#define int long long
// #define int __int128
#define ll long long
#define all(x) x.begin(), x.end()
#define endl '\n'
#define ls (p << 1)
#define rs ((p << 1) | 1)
#define f1 first
#define pb push_back
#define f2 second
#define IOS std::ios::sync_with_stdio(0), std::cin.tie(0), std::cout.tie(0), std::cout << std::fixed << std::setprecision(2);
int n;
double x[N], y[N], a[N], b[N];
int dp[N];
int read()
{
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
x = x * 10 + ch - '0';
ch = getchar();
}
x *= f;
return x;
}
void write(int x)
{
if (x < 0)
{
putchar('-');
x = -x;
}
if (x > 9)
write(x / 10);
putchar(x % 10 + '0');
}
signed main()
{
IOS;
int k;
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> x[i] >> y[i];
double l = -1e18, r = 1e18;
auto check = [&](double k1) -> bool
{
for (int i = 1; i <= n; i++)
dp[i] = 0, a[i] = y[i] - k1 * x[i];
int len = 0;
for (int i = 1; i <= n; i++)
{
if (a[i] > b[len])
{
b[++len] = a[i];
}
else
{
b[lower_bound(b + 1, b + len + 1, a[i]) - b] = a[i];
}
}
return len >= k;
};
//check(0.5);
while (l < r - eps)
{
double mid = (l + r) / 2;
if (check(mid))
l = mid + eps * 0.01;
else
r = mid - eps * 0.01;
}
cout << l << endl;
return false;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 10020kb
input:
4 3 1 2 2 4 3 3 4 1
output:
-1.00
result:
ok found '-1.0000000', expected '-1.0000000', error '-0.0000000'
Test #2:
score: 0
Accepted
time: 1ms
memory: 10020kb
input:
2 2 1 1 5 3
output:
0.50
result:
ok found '0.5000000', expected '0.5000000', error '0.0000000'
Test #3:
score: -100
Wrong Answer
time: 1ms
memory: 10084kb
input:
2 2 222640995 547139825 489207317 725361095
output:
0.67
result:
wrong answer 1st numbers differ - expected: '0.6685813', found: '0.6700000', error = '0.0014187'