Submission #1219515

#TimeUsernameProblemLanguageResultExecution timeMemory
1219515notarat40Star triangles (IZhO11_triangle)C++20
100 / 100
361 ms12708 KiB
 
#include <bits/stdc++.h>
#define ll long long
#define pb(a) push_back(a)
#define in(a) insert(a)
#define lldef ll N=0,M=0,K=0,ans=0,sum=0; string s="";
#define loop(valuename,startvalue,endvalue,changevalue) for(ll valuename=startvalue; valuename<endvalue; valuename+=changevalue)
#define rloop(valuename,startvalue,endvalue,changevalue) for(ll valuename=startvalue-1; valuename>=endvalue; valuename-=changevalue)
#define mk make_pair
#define begin begin()
#define end end() 
#define db long double
#define ff first 
#define ss second
 
using namespace std;
 
const int SIZE=1e5+69;
const int MOD=1e9+7;

/*
vector<vector<ll>>ADJ(SIZE);
vector<ll>vis(SIZE,0);
 
void dfs(ll vertex){
    vis[vertex]=true;
    for(auto it:ADJ[vertex]){
        if(!vis[it]){
            dfs(it);
        }
    }
}
*/

bool Ptwo(ll N){
    return (~N&N-1)==N-1;
}
ll l=0;
inline void test_case(){
    lldef;
    cin>>N;
    map<ll,ll>mpx,mpy;
    vector<pair<ll,ll>>V;
    loop(i,0,N,1){
        ll x,y;
        cin>>x>>y;
        V.push_back({x,y});
        mpx[x]++;
        mpy[y]++;
    }
    loop(i,0,N,1){
        ll x1=V[i].ff;
        ll y1=V[i].ss;
        //cout<<x1<<" "<<y1<<" "<<mpx[x1]<<" "<<mpy[y1]<<endl;
        ans+=(mpx[x1]-1)*(mpy[y1]-1);
    }
    cout<<ans<<endl;
}

int main(){
    ll t=1;
    //cin>>t;
    while(t--) {test_case(); l++;}
}
#Verdict Execution timeMemoryGrader output
Fetching results...