Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 3.655 pregleda

Najnovija ↓

[Zadatak] Vanzemaljci (IT) 30.11.2010. u 13:20 · pre 193 meseca #1
Citat:
I i Ti su vanzemaljci sa svemirskim brodom koji radi na planetarnu energiju, tj. gorivo dobija tako što proždire planete na koje naiđe. Znajući koordinate planeta u ravni broda i putanju po kojoj se on kreće (brod se kreće po pravoj liniji), pomozite Iju i Tiju da saznaju hoće li imati dovoljno goriva za svoj put.

INPUT:
Prvi red standardnog ulaza sadrži realne brojeve m i b, koji određuju pravu, putanju broda, datu jednačinom prave y = mx + b. U sledećem redu nalazi se prirodan broj n (1 <= n <= 10<sup>6</sup>), broj planeta u ravni broda. U svakom od narednih n redova nalaze se po dva realna broja, pi i qi, koji predstavljaju koordinate i-te planete. Smatrati da je brod započeo kretanje u tački x = 0, i da se kreće po onoj polupravoj gde je x-koordinata pozitivna.

OUTPUT:
U prvi i jedini red standardnog izlaza ispisati broj planeta koje će brod proždrati tokom svog putešestvija.

Ulaz:
2.0 3.0
9
-4.0 -5.0
0.0 3.0
0.0 0.0
7.0 17.0
10.4 24.0
4.2 11.4
5.5 14.0
2.8 8.6
-1.0 1.0


Izlaz:
5

Objašnjenje:
Biće proždrane planete s rednim brojevima 2, 4, 6, 7 i 8.

Ja sam odradio ovako:
Code:
#include<stdio.h>
int main(void)
{
    double y,k,x,n,line;
    long i,j,cnt=0;
    scanf("%lf%lf",&k,&n);
    scanf("%ld",&i);
    for(j=0;j<i;j++)
    {
        scanf("%lf%lf",&x,&y);
        line=k*x+n;
        if((line==y)&&(x>=0))
            cnt++;
    }
    printf("%ld",cnt);
    return 0;
}

Samo dva test primera prolaze, za ostale mi je Wrong result.
Re: [Zadatak] Vanzemaljci (IT) 30.11.2010. u 19:16 · pre 193 meseca #3
Nemam test primere, to je zadatak sa z-treninga... Ovo je link do zadatka: klik
Re: [Zadatak] Vanzemaljci (IT) 30.11.2010. u 22:29 · pre 193 meseca #4
Aritmetika realnih brojeva nije precizna da mozes da koristis line==y
Zameni if sa
Code:
if (fabs(line-y)<0.00001 && x>=0)


Re: [Zadatak] Vanzemaljci (IT) 30.11.2010. u 23:32 · pre 193 meseca #5
Da, to je to, sada prolaze svi test primeri. Znao sam da je neki problem sa tacnoscu kod realnih brojeva, ali nisam znao kako da premostim to. Hvala na pomoci!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme