Cod sursa(job #1819327)

Utilizator mdiannnaMarusic Diana mdiannna Data 30 noiembrie 2016 15:08:42
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <algorithm>
#include <stdio.h>

using namespace std;
int N;

struct point{
    int x;
    int y;
};

point P[1000];


void citire(){
    cin >> N;
    for(int i=0; i<N; i++)
        cin >> P[i].x >> P[i].y;
}

void afisare(){
    for(int i=0; i<N; i++)
        cout << P[i].x << " " <<  P[i].y << "\n";
}

int combinari(int n, int k){
    if(k == 0)
        return 1;
    if(k>n)
        return 0;
    return combinari(n-1, k) + combinari(n-1, k-1);

}

bool sort_x(point A, point B){
    return A.x < B.x;
}

bool sort_y(point A, point B){
    return A.y < B.y;
}

int calcx(){
    int cnt = 0;
    for(int i=0; i<N-1; i++){
        if(P[i].x == P[i+1].x)
            cnt++;
    }
    return cnt;
}

int calcy(){
    int cnt = 0;
    for(int i=0; i<N-1; i++){
        if(P[i].y == P[i+1].y)
            cnt++;
    }
    return cnt;
}

int main(){
    freopen("trapez.in", "r", stdin);
    freopen("trapez.out", "w", stdout);

    citire();

    sort(P, P+N, sort_x);

    int cx = calcx();

    sort(P, P+N, sort_y);

    int cy = calcy();

    //cout << combinari(5, 2);
    cout << combinari(cx, 2) + combinari(cy, 2);

    return 0;
}