Cod sursa(job #2844308)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 4 februarie 2022 10:07:48
Problema Trapez Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.95 kb
#include <cstdio>
#include <cstring>

using namespace std ;
FILE *fin, *fout ;

struct POINT
{
    int x , y ;
};

#define NMAX 1000
POINT v[NMAX + 5] ;
int fr[NMAX + 5] , total ;

int main()
{
    fin = fopen("trapez.in", "r") ;
    fout = fopen("trapez.out", "w") ;

    int n ;
    fscanf(fin, "%d", &n) ;

    for(int i = 1 ; i <= n ; i++)
        fscanf(fin, "%d%d", &v[i].x, &v[i].y) ;
    for(int i = 1 ; i < n - 2 ; i++)
        for(int j = i + 1 ; j < n - 1 ; j++)
            for(int z = j + 1 ; z < n ; z++)
            {
                for(int k = z + 1 ; k <= n ; k++)
                {
                    int cnt = 0 ;

                    fr[v[i].x]++;
                    fr[v[j].x]++;
                    fr[v[z].x]++;
                    fr[v[k].x]++;

                    if(fr[v[i].x] == 2)
                        cnt++;
                    if(fr[v[j].x] == 2)
                        cnt++;
                    if(fr[v[z].x] == 2)
                        cnt++;
                    if(fr[v[k].x] == 2)
                        cnt++;
                    if(cnt == 4)
                        total++;
                    cnt = 0 ;
                    fr[v[i].x] = fr[v[j].x] = fr[v[z].x] = fr[v[k].x] = 0 ;

                    fr[v[i].y]++;
                    fr[v[j].y]++;
                    fr[v[z].y]++;
                    fr[v[k].y]++;

                    if(fr[v[i].y] == 2)
                        cnt++;
                    if(fr[v[j].y] == 2)
                        cnt++;
                    if(fr[v[z].y] == 2)
                        cnt++;
                    if(fr[v[k].y] == 2)
                        cnt++;

                    if(cnt == 4)
                        total++;

                    fr[v[i].y] = fr[v[j].y] = fr[v[z].y] = fr[v[k].y] = 0 ;
                }
            }

    fprintf(fout , "%d" , total) ;
    fclose(fin) ;
    fclose(fout) ;
    return 0 ;
}