请求加强数据
查看原帖
请求加强数据
369897
放学后茶会楼主2020/12/2 18:27

建议加强数据,O2可过代码:

#include<bits/stdc++.h>
using namespace std;

int n,m,l,r;
int a[10011];

int gcd(int a,int b)
{
	if(b==0)return a;
	return gcd(b,a%b);
}

int ask(int l,int r)
{
	if(l == r)return a[l];
	int ans=a[l] ,tot = a[r];
	int mid = (l + r) >> 1;
	for(int i = r ; i >= mid + 1 ; i--){
		ans = gcd(a[i],ans);
		if(ans == 1)return 1;
	}
	for(int i = l + 1;i <= mid ; i++)
	{
		ans=gcd(a[i],ans);
		if(ans == 1)return 1;
	}
	return ans;
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d",&l,&r);
		int t=ask(l,r);
		printf("%d\n",t);
	}
	return 0;
}
2020/12/2 18:27
加载中...