样例都不对,求助
  • 板块P9519 pay
  • 楼主JayMe
  • 当前回复54
  • 已保存回复54
  • 发布时间2023/8/19 09:10
  • 上次更新2023/11/3 02:46:08
查看原帖
样例都不对,求助
1019841
JayMe楼主2023/8/19 09:10

为什么只能输出1,哪里出问题了,下午就要参加下一轮模拟赛了,求教


码:

#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
const int N=1e6+10;
int a[N],b[N],c[N];
bool jay(int k){
	for(int i=1;i<=m;i++){
		c[b[i]]+=k;
		for(int i=1;i<=n;i++)
			if(i<b[i])c[i]+=max(0,k-b[i]+i);
			else if(i>b[i])c[i]+=max(0,k-i+b[i]);
	}
	for(int i=1;i<=n;i++)
		if(c[i]<a[i])return 0;
	return 1;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int j=1;j<=m;j++)cin>>b[j];
    int l=1,r=1e6;
    while(l<r){
        int mid=(r+l)/2;
        if(jay(mid)){
        ans=mid;
		r=mid-1;
	    }
        else l=mid+1;
	}
	cout<<ans;
	return 0;
}
2023/8/19 09:10
加载中...