Submission #426136

#TimeUsernameProblemLanguageResultExecution timeMemory
426136SuckTinHockStar triangles (IZhO11_triangle)C++17
0 / 100
298 ms33796 KiB
#include <bits/stdc++.h> #define int long long #define x first #define y second using namespace std; typedef pair<int,int> Point; Point P[300005]; int n; int cntx[300005], cnty[300005]; void compress() { vector<int> A; for (int i = 1; i <= n; ++i) { A.push_back(P[i].x); A.push_back(P[i].y); } sort(A.begin(),A.end()); unique(A.begin(),A.end()); for (int i = 1; i <= n; ++i) { P[i].x = lower_bound(A.begin(),A.end(),P[i].x) - A.begin(); P[i].y = lower_bound(A.begin(),A.end(),P[i].y) - A.begin(); } } void xuly() { int res = 0; compress(); sort(P+1,P+n+1); vector<pair<Point,int> > PP; for (int i = 1; i <= n; ++i) { PP.push_back({P[i],1}); while (i+1 <= n && P[i] == P[i+1]) ++PP.back().y, ++i; cntx[P[i].x] += PP.back().y; cnty[P[i].y] += PP.back().y; } for (pair<Point,int> T : PP) { Point X = T.x; int cnt = T.y; res += (cntx[X.x] - cnt) * (cnty[X.y] - cnt); } cout << res; } void nhap() { cin >> n; for (int i = 1; i <= n; ++i) cin >> P[i].x >> P[i].y; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); nhap(); xuly(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...