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

Обсуждение задачи 1093. Дартс

This problem seems to be quite easy and i almost sure in the correctness of my program....BUT WA!!!!!!SO HELPHELPHELPHELP
Послано King Without Kingdom 3 авг 2002 07:59
This is my code:
#include<iostream.h>
#include<math.h>
//ifstream fin("input.txt");
long double cx,cy,cz,nx,ny,nz,r,sx,sy,sz,vx,vy,vz;
int main(){
    cin >>cx >> cy >> cz >>nx >>ny >>nz >>r >>sx >>sy >>sz >>vx
>>vy >>vz;
    cx-=sx;
    cy-=sy;
    cz-=sz;
    long double V=(nx*vx+ny*vy+nz*vz)/sqrtl(nx*nx+ny*ny+nz*nz);
    long double G=-(10*nz)/sqrtl(nx*nx+ny*ny+nz*nz);
    long double L=(cx*nx+cy*ny+cz*nz)/sqrtl(nx*nx+ny*ny+nz*nz);
    if(V*V+2*L*G<0)
    {
        cout << "MISSED\n";
        return 0;
    }
    long double t=(-V+sqrtl(V*V+2*L*G))/G;
    if(t>=0)
        {
            long double xp=vx*t-cx;
            long double yp=-cy+vy*t;
            long double zp=-cz+vz*t-5*t*t;
            if((xp)*(xp)+(yp)*(yp)+(zp)*(zp)<r*r)
                {
                    cout << "HIT\n";
                    return 0;
                }
        }
    t=(-V-sqrtl(V*V+2*L*G))/G;
    if(t>=0)
        {
            long double xp=-cx+vx*t;
            long double yp=-cy+vy*t;
            long double zp=-cz+vz*t-5*t*t;
            if((xp)*(xp)+(yp)*(yp)+(zp)*(zp)<r*r)
                {
                    cout << "HIT\n";
                    return 0;
                }
        }
    cout << "MISSED\n";
    return 0;
}

Oh there really was small bug in my program now i get ac
Послано King Without Kingdom 3 авг 2002 08:16
> This is my code:
> #include<iostream.h>
> #include<math.h>
> //ifstream fin("input.txt");
> long double cx,cy,cz,nx,ny,nz,r,sx,sy,sz,vx,vy,vz;
> int main(){
>     cin >>cx >> cy >> cz >>nx >>ny >>nz >>r >>sx >>sy >>sz >>vx
> >>vy >>vz;
>     cx-=sx;
>     cy-=sy;
>     cz-=sz;
>     long double V=(nx*vx+ny*vy+nz*vz)/sqrtl(nx*nx+ny*ny+nz*nz);
>     long double G=-(10*nz)/sqrtl(nx*nx+ny*ny+nz*nz);
>     long double L=(cx*nx+cy*ny+cz*nz)/sqrtl(nx*nx+ny*ny+nz*nz);
>     if(V*V+2*L*G<0)
>     {
>         cout << "MISSED\n";
>         return 0;
>     }
>     long double t=(-V+sqrtl(V*V+2*L*G))/G;
>     if(t>=0)
>         {
>             long double xp=vx*t-cx;
>             long double yp=-cy+vy*t;
>             long double zp=-cz+vz*t-5*t*t;
>             if((xp)*(xp)+(yp)*(yp)+(zp)*(zp)<r*r)
>                 {
>                     cout << "HIT\n";
>                     return 0;
>                 }
>         }
>     t=(-V-sqrtl(V*V+2*L*G))/G;
>     if(t>=0)
>         {
>             long double xp=-cx+vx*t;
>             long double yp=-cy+vy*t;
>             long double zp=-cz+vz*t-5*t*t;
>             if((xp)*(xp)+(yp)*(yp)+(zp)*(zp)<r*r)
>                 {
>                     cout << "HIT\n";
>                     return 0;
>                 }
>         }
>     cout << "MISSED\n";
>     return 0;
> }
>
>
>
what's bug in this program??
Послано hawking 21 авг 2002 16:29
Re: what's bug in this program??
Послано KHU$R@V 7 янв 2014 10:53