QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#660306#9427. Collect the CoinsMirasycleWA 0ms3680kbC++141.2kb2024-10-20 10:13:412024-10-20 10:13:41

Judging History

你现在查看的是最新测评结果

  • [2024-11-06 15:56:27]
  • hack成功,自动添加数据
  • (/hack/1139)
  • [2024-10-20 10:13:41]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3680kb
  • [2024-10-20 10:13:41]
  • 提交

answer

#include<bits/stdc++.h>
#define pb emplace_back
#define fi first
#define se second
#define mp make_pair
using namespace std;
typedef long long ll;
const int maxn=1e3+10;//记得改回来 
void chkmax(int &x,int y){ x=x>y?x:y; }
void chkmin(int &x,int y){ x=x<y?x:y; }
struct node{
	int t,x;
	bool operator < (const node &rhs){ return t<rhs.t; }
}a[maxn];
int t[maxn],x[maxn],p[maxn],n; bool f[maxn][maxn];
bool check(int v){
	for(int i=0;i<=n;i++)
		for(int j=0;j<=n;j++) f[i][j]=0;
	f[0][0]=1;
	for(int i=0;i<n;i++){
		if(f[i][0]){
			f[i+1][i]=1;
			for(int j=0;j<=i;j++) f[i][j]=1;
		}
		for(int j=1;j<=i;j++){
			if(abs(x[i+1]-x[i])<=1ll*v*(t[i+1]-t[i])) 
				f[i+1][j]|=f[i][j];
			if(abs(x[i+1]-x[j])<=1ll*v*(t[i+1]-t[j]))
				f[i+1][i]|=f[i][j]; 
		}
	}
	bool flag=0;
	for(int i=0;i<=n;i++) flag|=f[n][i];
	return flag;
}
void solve(){
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i].t>>a[i].x;
	sort(a+1,a+1+n); 
	for(int i=1;i<=n;i++) t[i]=a[i].t,x[i]=a[i].x;
	int l=0,r=1e9;
	while(l<r){
		int mid=(l+r)>>1;
		if(check(mid)) r=mid;
		else l=mid+1;
	}
	cout<<l<<endl;
}
int main(){
	int T; cin>>T;
	while(T--) solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3680kb

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
1000000000

result:

wrong answer 3rd lines differ - expected: '-1', found: '1000000000'