题目描述
把数1,2,3,4,5,…,按照“蛇形4”放入N*N矩阵的中,然后有M个询问,每个询问为:
请计算第x行第y列的数是什么?
输入格式
第一行2个正整数:N,M,范围在[1,100000]。
下面有M行,每行2个整数,范围在[1,N]。
输出格式
M行,第i行是第i个询问的结果。如果相应坐标格子里没有填数字,输出0。
输入/输出例子1
输入:
6 4
1 1
2 2
4 3
3 5
输出:
1
5
19
0
代码:
#include<bits/stdc++.h>
using namespace std;
long long n,m,s[100000],a,b,c,d,ans;
int main()
{
cin>>n>>m;
for(long long i=1;i<=n;i++)
{
s[i]=s[i-1]+i;
}
for(int i=1;i<=m;i++)
{
cin>>a>>b;
c=a+b-1;
if(c%2==1)d=b;
else d=a;
if(c>n)
{
cout<<0<<endl;
continue;
}
ans=(s[c-1]+d);
cout<<ans<<endl;
}
return 0;
}