ABC D题hack
  • 板块学术版
  • 楼主Baseplate27
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/2/4 21:44
  • 上次更新2023/10/24 01:41:02
查看原帖
ABC D题hack
879743
Baseplate27楼主2023/2/4 21:44
#include <bits/stdc++.h>

using namespace std;
#define int long long
const int maxn=2e5+10;
int n,k;
int a[maxn],b[maxn];
int sum[maxn];
int d[maxn];
signed main()
{
	ios::sync_with_stdio(false);
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i],sum[i]=sum[i-1]+a[i],d[i]=a[i]-a[i-1];
	int q;
	cin>>q;
	int x,y;
	while(q--)
	{
		cin>>x>>y;
		int t=sum[y]-sum[x-1];
		if(t%k!=0)
		{
			cout<<"No"<<endl;
			continue;
		}
		for(int i=y-k+1;i<=y;i++) b[i]=a[i];
		d[x]=a[x];
		for(int i=max(x,y-2*k+1);i<=y-k;i++)
		{
			for(int j=y-k+1;j<=min(i+k-1,y);j++) b[j]-=d[i];
		}
		bool flag=0;
		for(int i=y-k+1;i<=y;i++)
		{
			if(b[y-k+1]!=b[i])
			{
				flag=1;
				break;
			}
		}
		d[x]=a[x]-a[x-1];
		if(!flag) cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
	return 0;
}

找不出哪里错了,求大佬hack

2023/2/4 21:44
加载中...