Cod sursa(job #902072)

Utilizator kommancs96Nagy Daniel kommancs96 Data 1 martie 2013 12:42:29
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
//
//  main.cpp
//  Trapez
//
//  Created by Nagy Dani on 2013.03.01..
//  Copyright (c) 2013 Nagy Dani. All rights reserved.
//

#include <stdio.h>
#define eps 0.000001
#include <algorithm>
#include <vector>
#define ABS(X)(X>0 ? X : -1*X)
struct pont{
    long x,y;
};
struct par{
    double teny;
    int 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;
    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.begin()->szam;
}
void
_write(){
    FILE*out = fopen("trapez.out", "w");
    fprintf(out, "%ld",ered);
}

int main(int argc, const char * argv[])
{

    // insert code here...
    return 0;
}