#include <bits/stdc++.h>
#define ll long long
#define f first
#define s second
using namespace std;
const int maxn=1e6+5;
int n;
int x[maxn],y[maxn],row[maxn],col[maxn];
vector<int> nen;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>x[i]>>y[i];
nen.push_back(x[i]);
nen.push_back(y[i]);
}
sort(nen.begin(),nen.end());
nen.erase(unique(nen.begin(),nen.end()),nen.end());
int maxX=0,maxY=0;
for(int i=1;i<=n;i++){
x[i]=lower_bound(nen.begin(),nen.end(),x[i])-nen.begin()+1;
y[i]=lower_bound(nen.begin(),nen.end(),y[i])-nen.begin()+1;
row[x[i]]++;
col[y[i]]++;
}
ll ans=0;
for(int i=1;i<=n;i++){
ans+=(row[x[i]]-1)*(col[y[i]]-1);
}
cout<<ans;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |