Submission #18411

#TimeUsernameProblemLanguageResultExecution timeMemory
18411kdh9949Star triangles (IZhO11_triangle)C++98
100 / 100
291 ms8116 KiB
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;

struct Point{
    int x, y;
}p[300010];

int n, x[300010], y[300010], xsum[300010], ysum[300010];
ll ans;

int main(){
    scanf("%d", &n);
    for(int i = 0; i < n; i++){
        scanf("%d%d", x + i, y + i);
        p[i] = {x[i], y[i]};
    }
    sort(x, x + n);
    sort(y, y + n);
    for(int i = 0; i < n; i++){
        p[i] = {(int)(lower_bound(x, x + n, p[i].x) - x), (int)(lower_bound(y, y + n, p[i].y) - y)};
        xsum[p[i].x]++;
        ysum[p[i].y]++;
    }
    for(int i = 0; i < n; i++){
        ans += (ll)(xsum[p[i].x] - 1) * (ll)(ysum[p[i].y] - 1);
    }
    printf("%lld", ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...