Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Vanzemaljci (IT)

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Vanzemaljci (IT)

[ Pregleda: 2619 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

proka_92
proka_92
Smederevo

Član broj: 153372
Poruke: 69
*.dynamic.isp.telekom.rs.



+4 Profil

icon [Zadatak] Vanzemaljci (IT)30.11.2010. u 12:20 - pre 162 meseci
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.
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
*.dynamic.sbb.rs.

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: [Zadatak] Vanzemaljci (IT)30.11.2010. u 18:03 - pre 162 meseci
Pozdrav,

mozes li okaciti i ostale test primere koje si pokusao. Nisam uspeo da na prvi pogled pronadjem ikakvu gresku.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

proka_92
proka_92
Smederevo

Član broj: 153372
Poruke: 69
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: [Zadatak] Vanzemaljci (IT)30.11.2010. u 18:16 - pre 162 meseci
Nemam test primere, to je zadatak sa z-treninga... Ovo je link do zadatka: klik
 
Odgovor na temu

Picsel
Beograd

Član broj: 39817
Poruke: 440
95.180.86.*



+7 Profil

icon Re: [Zadatak] Vanzemaljci (IT)30.11.2010. u 21:29 - pre 162 meseci
Aritmetika realnih brojeva nije precizna da mozes da koristis line==y
Zameni if sa
Code:
if (fabs(line-y)<0.00001 && x>=0)


 
Odgovor na temu

proka_92
proka_92
Smederevo

Član broj: 153372
Poruke: 69
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: [Zadatak] Vanzemaljci (IT)30.11.2010. u 22:32 - pre 162 meseci
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!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Vanzemaljci (IT)

[ Pregleda: 2619 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.