#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define pb push_back
#define all(x) x.begin(), x.end()
#define fi first
#define se second
const int maxn5 = 1e5 + 10;
const int inf = 1e9;
const int mod = 1e9 + 7;
inline ll get(ll x, ll y){
if(x == 0 && y == 0)
return 1;
if(x >= 0 && y < 0){
if(x == -y)
return (2 * x + 1) * (2 * x + 1);
if(x < -y)
return get(-y, y) - (-y - x);
return get(x - 1, x - 1) + 1 + x + y;
}
if(x < 0 && y <= 0){
if(x == y)
return get(-x, y) + 2 * x;
if(x < y)
return get(x, x) - (-x + y);
return get(y, y) + (-y + x);
}
if(x <= 0 && y > 0){
if(-x == y)
return get(x, x) + 2 * x;
if(-x > y)
return get(x, -x) + (-x - y);
return get(-y, y) - (y + x);
}
if(x > 0 && y >= 0){
if(x == y)
return get(-x, x) - 2 * x;
if(x < y)
return get(y, y) + y - x;
return get(x, x) - (x - y);
}
cout << "WTF " << endl;
return -1;
}
int main()
{
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll n, q; cin >> n >> q;
while(q--){
ll x, y; cin >> x >> y >> x >> y;
cout << get(x, y) % mod << '\n';
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |