Pagini recente » Cod sursa (job #2353630) | Cod sursa (job #2828229) | Cod sursa (job #2108059) | Cod sursa (job #1578545) | Cod sursa (job #717854)
Cod sursa(job #717854)
#include<cstdio>
#include<vector>
#include<algorithm>
#include<iostream>
#define INF -1
using namespace std;
struct point{
int x;
int y;
};
vector<point> read(){
FILE *f;
f=fopen("trapez.in", "r");
int n;
fscanf(f, "%d", &n);
vector<point> a(n);
for(int i=0; i<n; i++)
fscanf(f, "%d %d", &a[i].x, &a[i].y);
fclose(f);
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){
FILE *g;
g=fopen("trapez.out", "w");
fprintf(g, "%d\n", (c*(c-1))/2);
fclose(g);
}
int main(){
vector<point> a=read();
vector<double> b=compute(a);
int c=count(b);
print(c);
return 0;
}