Pagini recente » Cod sursa (job #1627692) | Cod sursa (job #419259) | Cod sursa (job #1668221) | Cod sursa (job #2664772) | Cod sursa (job #902350)
Cod sursa(job #902350)
//
// main.cpp
// Trapez
//
// Created by Nagy Dani on 2013.03.01..
// Copyright (c) 2013 Nagy Dani. All rights reserved.
//
#include <limits.h>
#include <stdio.h>
#define eps 0.000001
#include <algorithm>
#include <vector>
#define ABS(X)(X>=0 ? X : -X)
struct pont{
long x,y;
};
struct par{
double teny;
long szam;
};
class parcmp {
public:
bool operator()(par a,par b){
return (a.szam > b.szam ? true:false);
}
} cmp;
pont p[1000];
int num;
long ered;
std::vector<par> eredmenyek;
void
_read(){
FILE*in = fopen("trapez.in", "r");
fscanf(in, "%d",&num);
for (int i=0; i<num; i++) {
fscanf(in, "%ld%ld",&p[i].x,&p[i].y);
}
}
double
iranyt(pont a,pont b){
if (a.x==b.x) {
return INT_MAX;
}else{
return (double)(a.y-b.y)/(a.x-b.x);
}
}
void
add_ered(double a){
par tmp;
if (eredmenyek.size()==0) {
tmp.teny=a;
tmp.szam=1;
eredmenyek.push_back(tmp);
}else{
std::vector<par>::iterator it;
for(it=eredmenyek.begin();it!=eredmenyek.end();it++){
if(ABS(a-(it->teny))<=eps){
it->szam++;
}else{
tmp.teny = a;
tmp.szam = 0;
eredmenyek.push_back(tmp);
}
}
}
}
void
solve(){
for (int i=0; i<num; i++) {
for(int j=0;j<num;j++){
add_ered(iranyt(p[i], p[j]));
}
}
std::sort(eredmenyek.begin(), eredmenyek.end(), cmp);
ered = eredmenyek[0].szam;
}
void
_write(){
FILE*out = fopen("trapez.out", "w");
fprintf(out, "%ld",ered);
}
int main(int argc, const char * argv[])
{
_read();
solve();
_write();
return 0;
}