- problem link:http://codeforces.com/contest/1027/problem/B
可以分解开来找规律:看图
以n为4为例,每行有n/2个数。结合坐标特点得出规律。
AC code:
#include<iostream>
using namespace std;
typedef long long ll;
ll n,q,a,b,ans;
int main(){
cin>>n>>q;
while(q--){
cin>>a>>b;
ans=(a-1)*n+b+1;
if((a+b)%2)ans+=n*n;
cout<<ans/2<<endl;
}
}