ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1588. Ямайка

Please, help me! I've got Compilation Error ????
Послано Nguyen Dinh Tu (DHSP) 30 янв 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 ????
Послано CHIDEMYAN SERGEY 1 фев 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 ????
Послано CHIDEMYAN SERGEY 1 фев 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 ????
Послано Nguyen Dinh Tu (DHSP) 1 фев 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 ????
Послано CHIDEMYAN SERGEY 3 фев 2008 00:16
As far as I know there is no standart function round() in C++.For more information read FAQ.Good luck!