Submission #935112

#TimeUsernameProblemLanguageResultExecution timeMemory
935112ind1vStar triangles (IZhO11_triangle)C++11
100 / 100
220 ms14400 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 3e5 + 5;

int n;
int x[N], y[N];
int cx[N], cy[N];

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> x[i] >> y[i];
  }
  vector<int> vx;
  copy(x + 1, x + n + 1, back_inserter(vx));
  sort(vx.begin(), vx.end());
  vx.erase(unique(vx.begin(), vx.end()), vx.end());
  vector<int> vy;
  copy(y + 1, y + n + 1, back_inserter(vy));
  sort(vy.begin(), vy.end());
  vy.erase(unique(vy.begin(), vy.end()), vy.end());
  for (int i = 1; i <= n; i++) {
    cx[lower_bound(vx.begin(), vx.end(), x[i]) - vx.begin()]++;
    cy[lower_bound(vy.begin(), vy.end(), y[i]) - vy.begin()]++;
  }
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    ans += (cx[lower_bound(vx.begin(), vx.end(), x[i]) - vx.begin()] - 1) * (cy[lower_bound(vy.begin(), vy.end(), y[i]) - vy.begin()] - 1);
  }
  cout << ans << '\n';
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...