Pagini recente » Cod sursa (job #2632339) | Cod sursa (job #2556164) | Cod sursa (job #1663082) | Cod sursa (job #11927) | Cod sursa (job #348826)
Cod sursa(job #348826)
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int,int> ii;
typedef pair<long long, long long> ll;
#define sz(a) int((a).size())
#define pb push_back
#define all(c) (c).begin(),(c).end()
#define tr(c,i) for(typeof((c).begin() i = (c).begin(); i != (c).end(); i++)
#define present(c,x) ((c).find(x) != (c).end())
#define cpresent(c,x) (find(all(c),x) != (c).end()) 1
#define NMAX 1000
vector<ll >coord(NMAX);
vector<vector<ll > >tg(NMAX,vector<ll >(NMAX));
int n;
int cmmdc (ll x) {
ll y;
y.first=abs(x.first);
y.second=abs(x.first);
if(y.first*y.second == 0) return 1;
while (y.first != y.second) {
if (y.first>y.second) y.first-=y.second;
else if (y.second>y.first) y.second-=y.first;
}
return (int)y.first;
}
void sim (ll x) {
int a;
a = cmmdc(x);
}
int main() {
fstream f,g;
f.open("trapez.in", fstream::in);
g.open("trapez.out", fstream::out);
f>>n;
for (int i=1;i<=n;i++)
f>>coord[i].first>>coord[i].second;
for (int i=1;i<=n;i++)
for (int j=i+1;j<=n;j++) {
if (coord[i].second==coord[j].second) tg[i][j]=make_pair(0,0);
else if (coord[i].first==coord[j].first) tg[i][j]=make_pair(-1,1);
else {
tg[i][j]=make_pair(coord[j].first-coord[i].first,coord[j].second-coord[i].second);
sim(tg[i][j]);
}
}
int nr=0;
for (int i=1;i<=n;i++)
for (int j=i+1;j<=n;j++)
for (int k=i+1;k<=n;k++)
for (int l=k+1;l<=n;l++)
if(i!=k && i!=l && j!=k && j!=l && tg[i][j] == tg[k][l])
nr++;
g<<nr;
f.close();
g.close();
return 0;
}