15分求调
查看原帖
15分求调
1468496
skykissheep楼主2025/8/5 17:22
#include <bits/stdc++.h>
using namespace std;
struct node{
	long long h, a, t;
}c[200005];
bool cmp(node x, node y){
	return x.t < y.t;
}
long long T, n;
double k;
bool flag;

int main(){
	cin >> T;
	while(T--){
		k = 0;
		flag = true;
		cin >> n;
		for (int i=1; i<=n; i++) cin >> c[i].h;
		for (int i=1; i<=n; i++) cin >> c[i].a;
		for (int i=1; i<=n; i++) cin >> c[i].t;
		if (n == 1){
			cout << 0 << "\n";
			continue ;
		}
		sort (c+1, c+n+1, cmp);
		for (int i=1; i<n; i++){
			if (c[i].h <= c[i+1].h && c[i].a <= c[i+1].a){
				cout << -1 << "\n";
				flag = false;
				break ;
			}
			if (c[i].a!=c[i+1].a) k = max(k, 1.0*(c[i+1].h-c[i].h)/(c[i].a-c[i+1].a));
		}
		if (flag == true){
			if (k<0) cout << "0\n";
			else cout << int(k+1) << "\n";
		}
	}
	return 0;
}
2025/8/5 17:22
加载中...