Pagini recente » Cod sursa (job #2657924) | Cod sursa (job #717864)
Cod sursa(job #717864)
#include<fstream>
#include<vector>
#include<algorithm>
#include<iostream>
#define INF -1
using namespace std;
struct point{
int x;
int y;
};
vector<point> read(){
ifstream f("trapez.in");
int n;
f>>n;
vector<point> a(n);
for(int i=0; i<n; i++)
f>>a[i].x>>a[i].y;
f.close();
return a;
}
vector<double> compute(vector<point> a){
vector<double> k;
for(unsigned int i=0; i<a.size()-1; i++)
for(unsigned j=i+1; j<a.size(); j++){
cout<<a[i].y<<' '<<a[j].y<<' '<<a[i].x<<' '<<a[j].x<<'\n';
if((a[i].x-a[j].x)!=0)
k.push_back((double)(a[i].y-a[j].y)/(a[i].x-a[j].x));
else{
k.push_back(INF);
}
}
return k;
}
int count(vector<double> k){
sort(k.begin(), k.end());
int c=1;
for(int i=0; i<k.size(); i++)
cout<<k[i]<<' ';
for(int i=0; i<k.size()-1; i++)
if(k[i]==k[i+1])
c++;
return c;
}
void print(int c){
ofstream g("trapez.out");
g<<(c*(c-1)/2);
g.close();
}
int main(){
vector<point> a=read();
vector<double> b=compute(a);
int c=count(b);
print(c);
return 0;
}