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

Обсуждение задачи 1369. Тараканьи бега

почему невернЬІй ответ?
Послано Andriy_Zhyvchyn 6 июл 2011 18:32
#include <iostream>
#include <math.h>
using namespace std;

float tar[100000][2];
float slad[10000][2];
float ooo[100000][2];

int prov (float a[100000][2], int n) {
    int i=0; int j=0;
    for (i=0; i<n; i++)
    for (j=i+1; j<n; j++)
    if (a[i][0]==a[j][0] || a[i][1]==a[i][1]) return 0;
    return 1; }

void obch (float x, float y, float tarr[100000][2], int mm, float oooo[100000][2]) {
    int ii=0;
    for (ii=0; ii<mm; ii++) {
        oooo[ii][0]=sqrt(((x-tarr[ii][0])*(x-tarr[ii][0]))+((y-tarr[ii][1])*(y-tarr[ii][1])));
        oooo[ii][1]=ii+1; } }

float min_n (float oooo[100000][2], int mm) {
    float nomm=oooo[0][1]; float znn=oooo[0][0]; int ii=0;
    for (ii=0; ii<mm; ii++) {
        if (oooo[ii][0]<znn) { nomm=oooo[ii][1]; znn=oooo[ii][0]; } }
    return nomm; }

int main () {
    int i=0; int m; int n;
    float min;
    cin>>m;
    for (i=0; i<m; i++) {
        cin>>tar[i][0];
        cin>>tar[i][1]; }
    cin>>n;
    if(m<=n || m<=0) return 0;
    for (i=0; i<n; i++) {
        cin>>slad[i][0];
        cin>>slad[i][1]; }
    if (!prov(tar,m) && !prov(slad,n)) return 0;
    for (i=0; i<n; i++) {
        obch (slad[i][0], slad[i][1], tar, m, ooo);
        min=min_n(ooo,m);
        for (float j=min-1; j<m; j++)
        if (ooo[(int)(min-1)][0]==ooo[(int)(j)][0]) cout<<ooo[(int)(j)][1]<<' ';
        cout<<endl; }
    system ("pause");
    return 0; }