제출 #525659

#제출 시각아이디문제언어결과실행 시간메모리
525659Shavkatjon별들과 삼각형 (IZhO11_triangle)C++14
100 / 100
301 ms15556 KiB
#include <bits/stdc++.h>

#define INF 1000000021
#define MOD 1000000007
#define pb push_back
#define sqr(a) (a)*(a)
#define M(a, b) make_pair(a,b)
#define int long long
#define T(a, b, c) make_pair(a, make_pair(b, c))
#define F first
#define S second
#define all(x) sort(x.begin(), x.end())
#define rall(x) sort(x.rbegin(), x.rend())
#define deb(x) cerr << #x << " = " << x << '\n'
#define N 222222

using namespace std;
//using namespace __gnu_pbds;

typedef long double ld;
typedef pair<int,int> pii;
typedef vector<int> vi;
//typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> indexed_set;

const ld pi = 2 * acos(0.0);

//int month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

int gcd(int a, int b) {
    return b ? gcd (b, a % b) : a;
}

int binpow (int a, int n) {
    if (n == 0)
        return 1LL;
    if (n % 2 == 1)
        return ((binpow (a, n-1)%MOD) * 1LL * a)%MOD;
    else {
        int b = binpow (a, n/2)%MOD;
        return (b * b)%MOD;
    }
}

//void swap(int &a, int &b){
//    b = (a+b) - (a=b);
//}

void solve(){
    map<int, int> m1, m2;
    int n, a[300001][2], sum = 0;
    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> a[i][0] >> a[i][1];
        m1[a[i][0]]++;
        m2[a[i][1]]++;
    }
    for(int i = 0; i < n; i++){
        sum += (m1[a[i][0]] - 1) * (m2[a[i][1]] - 1);
    }
    cout << sum;
}

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    // cin >> t;
    while(t--){
        solve();
        cout << "\n";
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...