ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1588. Jamaica

Please, help me! I've got Compilation Error ????
Posted by Nguyen Dinh Tu (DHSP) 30 Jan 2008 01:58
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <utility>

using namespace std;

const int maxN = 304;

int x[maxN], y[maxN];
int n;
vector< pair<int, int> > p;
bool mark[maxN][maxN];

int dist(const int& i, const int& j)
{
    return (x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]);
}

bool compairation(const pair<int, int>& p1, const pair<int, int>& p2)
{
    return (dist(p1.first, p1.second) > dist(p2.first, p2.second));
}

int ccw(const int& i, const int& j, const int& k)
{
    int dx1 = x[j] - x[i], dy1 = y[j] - y[i];
    int dx2 = x[k] - x[j], dy2 = y[k] - y[j];
    return (dx1 * dy2 - dx2 * dy1);
}

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> x[i] >> y[i];

    for (int i = 1; i < n; i++)
        for (int j = i + 1; j <= n; j++)
            p.push_back(pair<int, int>(i, j));

    sort(p.begin(), p.end(), compairation);

    memset(mark, true, sizeof(mark));

    double total = 0.0;
    for (int i = 0; i < p.size(); i++)
        if (mark[p[i].first][p[i].second])
        {
            int d = p[i].first, c = p[i].second;
            vector<int> point;
            point.clear();
            for (int j = 1; j <= n; j++)
                if (ccw(d, j, c) == 0) point.push_back(j);
            for (int u = 0; u < point.size(); u++)
                for (int v = u + 1; v < point.size(); v++)
                {
                    mark[point[u]][point[v]] = false;
                    mark[point[v]][point[u]] = false;
                    //cout << point[u] << " " << point[v] << endl;
                }
            total += sqrt(double(dist(d, c)));
        }

    cout << round(total) << endl;

    return 0;
}
Re: Please, help me! I've got Compilation Error ????
Posted by CHIDEMYAN SERGEY 1 Feb 2008 01:34
cout << round(total) << endl;//<Mistake here
There is no function round() in C++.

Edited by author 01.02.2008 02:11
Re: Please, help me! I've got Compilation Error ????
Posted by CHIDEMYAN SERGEY 1 Feb 2008 01:42
Or try follow:
Set
#include<stdio.h>
and write
printf("%0.lf",total);
I think it will be more helpful.

Edited by author 01.02.2008 01:42

Edited by author 01.02.2008 02:11
Re: Please, help me! I've got Compilation Error ????
Posted by Nguyen Dinh Tu (DHSP) 1 Feb 2008 19:02
Thank you very much! I've got AC. But i compiled it sucessfully by DevC++ and Eclipse IDE. (It also uses g++ compiler). Please tell me why ?????

Edited by author 01.02.2008 19:05
Re: Please, help me! I've got Compilation Error ????
Posted by CHIDEMYAN SERGEY 3 Feb 2008 00:16
As far as I know there is no standart function round() in C++.For more information read FAQ.Good luck!