Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<map>using namespace std;long long f(int k) {return (long long)k * (long long)(k - 1) / 2;}int main() {int n; cin >> n;map<int, int> v, h, d1, d2;int r, c;while(n--) {cin >> r >> c;v[c]++; h[r]++; d1[r + c]++; d2[r - c]++;}long long ans = 0;map<int, int>::iterator it;for(it = v.begin(); it != v.end(); it++)if(it->second > 1) ans += f(it->second);for(it = h.begin(); it != h.end(); it++)if(it->second > 1) ans += f(it->second);for(it = d1.begin(); it != d1.end(); it++)if(it->second > 1) ans += f(it->second);for(it = d2.begin(); it != d2.end(); it++)if(it->second > 1) ans += f(it->second);cout << ans << endl;return 0;