Cod sursa(job #2459043)

Utilizator CybotStancila Ionut-Marian Cybot Data 22 septembrie 2019 10:45:17
Problema Trapez Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream f("trapez.in");
ofstream g("trapez.out");

struct punct{
    int x, y;
}v[1005], p[1005*1005];

int mycmp(punct a, punct b)
{
    return a.x*b.y<a.y*b.x;
}

int n, r, nr;

int main()
{
    f>>n;
    for (int i=1;i<=n;i++) f>>v[i].x>>v[i].y;
    for (int i=1;i<=n;i++)
        for (int j=i+1;j<=n;j++)
        { int s1=v[j].y-v[i].y;
          int j1=v[j].x-v[i].x;
          if (s1<0 && j1<0) s1=-s1, j1=-j1;
          p[++nr].x=s1;
          p[nr].y=j1;
        }
    sort (p+1, p+nr+1, mycmp);
    /*for (int i=1;i<=nr;i++) g<<p[i].x<<" "<<p[i].y<<'\n';*/
    int m=1;
    for (int i=2;i<=nr;i++)
    { if (p[i].x*p[i-1].y==p[i-1].x*p[i].y) m++;
      else {
          r+=m*(m-1)/2;
          m=1;
      }
    }
    r+=m*(m-1)/2;
    g<<r<<'\n';
    return 0;
}