问题遇到的现象和发生背景
在VJ平台显示Segmentation Fault
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<string.h>
#define N 10000
int main()
{
int m,n;
int i,j;
int a[N],b[N];
int min,max,res=0;
while(~scanf("%d%d",&m,&n))
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(j=0;j<n;j++)
{
scanf("%d",&b[j]);
}
max=min=a[0];
for(j=0;j<n;j++)
{
if(b[j]<=n)
{
for(i=0;i<b[j];i++)
{
if(max<a[i])
{
max=a[i];
}
if(min>a[i])
{
min=a[i];
}
}
res=max-min;
printf("%d",res);
if(j!=n-1)
printf(" ");
res=0;
}
else
break;
}
printf("\n");
}
return 0;
}
运行结果及报错内容
原题:
蒜头君有 nn 个数,他提出了 qq 个问题,每个问题是说,询问前 xx 个数的极差(最大值减最小值)。你能帮助他解决这 qq 个问题吗?
输入格式
第一行两个整数 n, q(1 \leq n, q \leq 10 ^ 5)n,q(1≤n,q≤10
5
)
第二行 nn 个整数 a_i(1 \leq a_i \leq 10 ^ 9)a
i
(1≤a
i
≤10
9
) 表示蒜头君的 nn 个数
第三行 qq 个整数 x_i(1 \leq x_i \leq n)x
i
(1≤x
i
≤n) ,表示每一次询问
输出格式
输出一行,包含 qq 个整数,表示每一次询问的答案
数据范围
对于 60%60% 的数据, 1 \leq n, q \leq 10 ^ 31≤n,q≤10
3
对于 100%100% 的数据,1 \leq n, q \leq 10 ^ 51≤n,q≤10
5
Sample Input
5 5
3 2 4 5 1
1 2 3 4 5
Sample Output
0 1 2 3 4