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

Общий форум

What is "Compilation Error!!"?
Послано sonteenzz 5 май 2003 23:54
describe about this error plz
Oh men! There is a bug in da program which makes it impossible to compile(-)
Послано uuuuuuu 6 май 2003 00:18
Re: What is "Compilation Error!!"?
Послано sonteenzz 6 май 2003 01:40
Where is a bug?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int lap = 0;
int min(int x,int y){
    if (x>=y)
        return y;
    else
        return x;
}
int max(int x,int y){
    if (x>=y)
        return x;
    else
        return y;
}
int mint(int i,int k,int n,int dis[]){
    if (i+k < n){
        if (dis[i] < 0)
            mint(i+1,1,n,dis);
        else if ((dis[i+k] >= 0))
            if (dis[i]<=dis[i+k])
                mint(i,k+1,n,dis);
            else
                mint(i+k,1,n,dis);
        else
            mint(i,k+1,n,dis);
    }else if(lap<n){
        dis[i] = -1;
        printf("%d",i+1);
        lap++;
        if (lap<n)
            printf(" ");
        mint(0,1,n,dis);
    }
    return 0;
}
int disPoint(int x1,int y1,int x2,int y2){
    return (int) sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));
}
int check(int px,int py,int x1,int y1,int x2,int y2){
    if ((x1<=px)&&(px<=x2)&&(y1<=py)&&(py<=y2)){
        return 0;
    }else if((x1<=px)&&(px<=x2)){
        if (py>y2)
            return py-y2;
        else
            return y1-py;
    }else if((y1<=py)&&(py<=y2)){
        if (px>x2)
            return px-x2;
        else
            return x1-px;
    }else {
        return min(disPoint(px,py,x1,y1),min(disPoint
(px,py,x1,y2),min(disPoint(px,py,x2,y1),disPoint(px,py,x2,y2))));
    }
}
int main(void){
    char nSqr;
    int px,py,*dis;
    struct Sqr{
        int x1,x2,y1,y2;
    } *s;
    scanf("%d",&nSqr);
    s = (Sqr*) malloc(sizeof(Sqr)*nSqr);
    dis = (int*) malloc(sizeof(int)*nSqr);
    for (int i = 0;i<nSqr;i++){
        scanf("%d %d %d %d",&s[i].x1,&s[i].y1,&s
[i].x2,&s[i].y2);
    }
    scanf("%d %d",&px,&py);
    for (i = 0;i<nSqr;i++){
        dis[i] = check(px,py,min(s[i].x1,s[i].x2),min(s
[i].y1,s[i].y2),max(s[i].x1,s[i].x2),max(s[i].y1,s[i].y2));
    }
    mint(0,1,nSqr,dis);
    free(s);
    free(dis);
    return 0;
}