QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#611431 | #9427. Collect the Coins | Kevin5307 | WA | 23ms | 9848kb | C++23 | 1.6kb | 2024-10-04 21:00:49 | 2024-10-04 21:00:51 |
Judging History
answer
//Author: Kevin
#include<bits/stdc++.h>
//#pragma GCC optimize("O2")
using namespace std;
#define ll long long
#define ull unsigned ll
#define pb emplace_back
#define mp make_pair
#define ALL(x) (x).begin(),(x).end()
#define rALL(x) (x).rbegin(),(x).rend()
#define srt(x) sort(ALL(x))
#define rev(x) reverse(ALL(x))
#define rsrt(x) sort(rALL(x))
#define sz(x) (int)(x.size())
#define inf 0x3f3f3f3f
#define pii pair<int,int>
#define lb(v,x) (int)(lower_bound(ALL(v),x)-v.begin())
#define ub(v,x) (int)(upper_bound(ALL(v),x)-v.begin())
#define uni(v) v.resize(unique(ALL(v))-v.begin())
#define longer __int128_t
void die(string S){puts(S.c_str());exit(0);}
ll x[1001000],y[1001000];
ll l[1001000],r[1001000];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>x[i]>>y[i];
ll L=0,R=inf;
while(L<R)
{
ll mid=(L+R)/2;
for(int i=1;i<=n;i++)
l[i]=r[i]=-1;
l[1]=0;
r[1]=inf;
for(int i=2;i<=n;i++)
{
if(abs(y[i-1]-y[i])<=(x[i]-x[i-1])*mid)
{
l[i]=l[i-1]-(x[i]-x[i-1])*mid;
r[i]=r[i-1]+(x[i]-x[i-1])*mid;
}
if(y[i]>=l[i-1]-(x[i]-x[i-1])*mid&&y[i]<=r[i-1]+(x[i]-x[i-1])*mid)
{
if(l[i]==-1)
{
l[i]=y[i-1]-(x[i]-x[i-1])*mid;
r[i]=y[i-1]+(x[i]-x[i-1])*mid;
}
else
{
l[i]=min(l[i],y[i-1]-(x[i]-x[i-1])*mid);
r[i]=max(r[i],y[i-1]+(x[i]-x[i-1])*mid);
}
}
}
if(l[n]!=-1)
R=mid;
else
L=mid+1;
}
if(L==inf)
cout<<"-1\n";
else
cout<<L<<'\n';
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 9848kb
input:
3 5 1 1 3 7 3 4 4 3 5 10 1 10 100 3 10 100 10 1000 10 10000
output:
2 0 -1
result:
ok 3 lines
Test #2:
score: -100
Wrong Answer
time: 23ms
memory: 9840kb
input:
1135 2 6 5 8 8 8 2 9 2 10 4 4 5 3 6 2 6 8 8 2 8 7 1 9 1 6 4 6 6 1 6 2 9 10 10 1 10 7 5 1 6 2 5 6 7 8 6 10 3 8 1 10 5 4 5 7 6 1 6 6 8 4 9 1 9 4 8 1 1 1 3 2 9 3 3 5 9 6 10 9 7 10 7 3 5 8 6 6 10 6 7 2 9 4 7 5 10 6 3 6 7 8 9 10 1 6 1 4 2 8 5 9 7 10 9 1 10 5 9 2 7 4 5 5 9 6 10 7 4 9 4 9 9 10 3 10 7 1 3 1...
output:
0 2 0 3 1 1 1 0 1 3 2 0 2 5 0 1 1 1 1 0 0 0 1 1 2 0 2 1 1 2 1 1 1 2 2 3 1 1 0 2 1 1 0 2 0 1 0 1 0 2 1 0 1 1 4 1 1 1 1 0 1 2 0 1 2 3 2 0 0 1 2 2 3 1 1 0 0 1 0 2 1 2 0 2 1 3 0 0 1 2 0 2 0 2 2 4 1 0 0 0 5 1 1 0 1 1 2 1 3 2 2 0 3 1 4 3 6 0 2 1 2 3 0 2 2 2 1 1 0 0 0 1 2 1 1 0 0 3 1 4 1 1 2 3 1 0 2 1 1 1 ...
result:
wrong answer 2nd lines differ - expected: '3', found: '2'