QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#660796 | #9427. Collect the Coins | ucup-team4801 | WA | 30ms | 10100kb | C++14 | 1.3kb | 2024-10-20 13:25:23 | 2024-10-20 13:25:24 |
Judging History
answer
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define per(i,a,b) for(int i=(a);i>=(b);--i)
#define ll long long
#define mid ((l+r)>>1)
using namespace std;
const int N=1e6+10,inf=0x3f3f3f3f;
int n,a[N],t[N],p[N];
bool checkk(int i,int j,int k){
if(i==-1||j==-1) return 0;
return !i||!j||1ll*abs(a[p[i]]-a[p[j]])<=1ll*k*abs(t[p[i]]-t[p[j]]);
}
bool f[N],dv[N];
bool check(int k){
rep(i,2,n) dv[i]=checkk(i-1,i,k);
f[0]=f[1]=f[2]=1;
int l=2-dv[2],pl=1,pr=1;if(dv[2]) pl=pr=0;
rep(i,3,n){
f[i]=checkk(pl,i,k)|checkk(pr,i,k);
if(!dv[i]) pl=pr=-1;
if(f[i]){
if(pl==-1||1ll*a[p[pl]]+1ll*t[p[pl]]*k>1ll*a[p[i-1]]+1ll*t[p[i-1]]*k) pl=i-1;
if(pr==-1||1ll*a[p[pr]]+1ll*t[p[pr]]*k>1ll*a[p[i-1]]-1ll*t[p[i-1]]*k) pr=i-1;
}
}
per(i,n,2){
if(f[i]) return 1;
if(!dv[i]) break;
}
return 0;
}
int main(){
int T;scanf("%d",&T);while(T--){
scanf("%d",&n);rep(i,1,n) scanf("%d%d",t+i,a+i);iota(p+1,p+n+1,1);sort(p+1,p+n+1,[&](int A,int B){return t[A]<t[B];});
if(n<=2) {puts("0");continue;}
int l=0,r=inf,res=inf+1;while(l<=r) check(mid)?res=mid,r=mid-1:l=mid+1;printf("%d\n",res==inf+1?-1:res);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 10100kb
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: 30ms
memory: 10072kb
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 3 0 3 1 3 6 0 3 2 3 0 2 5 0 1 5 1 2 0 0 0 1 4 2 0 2 1 3 0 3 2 3 2 5 3 1 1 0 1 1 1 0 2 0 1 0 1 0 2 1 0 2 3 4 4 1 1 1 0 1 3 0 1 4 4 3 0 0 2 2 6 4 2 1 0 0 1 0 3 1 2 0 1 1 3 0 0 1 2 0 3 0 2 2 2 1 0 0 0 5 1 2 0 6 1 1 1 2 2 2 0 3 1 4 3 6 0 8 1 1 3 0 2 2 4 1 1 0 0 0 7 2 2 1 0 0 3 1 2 1 1 2 5 3 0 3 3 3 5 ...
result:
wrong answer 11th lines differ - expected: '2', found: '3'