水题 why wa on 5 悬棺
查看原帖
水题 why wa on 5 悬棺
1370556
__lcm楼主2024/10/18 09:00
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+10;
int a[N];
void solve(){
	int n,m,sum=0;
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++){
		sum+=a[i];
		a[i]=max(a[i-1],sum);
	}
	while(m--){
		int x,t;
		cin>>x;
		if(a[n]>=x) t=0;
		else if(sum<=0){
			cout<<"-1 ";
			continue;
		}
		else t=(x-a[n]+sum-1)/sum;
		x-=t*sum;
		cout<<t*n+lower_bound(a+1,a+n+1,x)-a-1<<' ';
	}
	cout<<endl;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	int T;
	cin>>T;
	while(T--) solve();
}
2024/10/18 09:00
加载中...