Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 400 Taxi  (Citit de 3525 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
danielp
Vorbaret
****

Karma: 34
Deconectat Deconectat

Mesaje: 194



Vezi Profilul
« : Aprilie 04, 2007, 19:48:12 »

Aici puteţi discuta despre problema Taxi.
Memorat

I can't get a life if my heart's not in it
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #1 : Ianuarie 27, 2009, 19:28:11 »

Distanta dintre doua puncte este distanta geometrica (sqrt((x1-x2)2 + (y1-y2)2) sau distanta Manhattan? Pentru ca la inceput scrie ca strazile impart orasul sub forma unei matrice, iar oamenii cred ca merg pe strazi.  Confused
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #2 : Ianuarie 27, 2009, 19:41:11 »

E distanta Manhattan.
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #3 : Ianuarie 29, 2009, 14:09:21 »

Mersi Very Happy

Cat tre sa dea pt testul
Cod:
1
16 15 1 4 3 6
?
Memorat
gabitzish1
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #4 : Ianuarie 29, 2009, 17:35:13 »

91
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #5 : Ianuarie 29, 2009, 17:36:39 »

Asa imi da si mie, dar nu prea inteleg de ce iau incorect pe 9 teste  Confused
Memorat
Detrol2k
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #6 : Noiembrie 30, 2012, 20:57:16 »

Imi poate da cineva o idee de rezolvare?  Confused
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #7 : Noiembrie 30, 2012, 22:01:50 »

Gasesti aici solutiile oficiale.
Memorat
Detrol2k
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #8 : Decembrie 10, 2012, 18:31:50 »

Gasesti aici solutiile oficiale.

Multumesc!

L.E: Si eu iau 9 WA. E vreun truc la mijloc?  . Imi da bine pe exemplul din enunt si cel postat aici si pe altele date de mine.
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #9 : Decembrie 11, 2012, 21:25:13 »

vezi cat iti da pe
1
6 6 1 1 2 3

R: 0

Probabil asta gresesti.
Memorat
Detrol2k
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #10 : Decembrie 12, 2012, 12:19:35 »

vezi cat iti da pe
1
6 6 1 1 2 3

R: 0

Probabil asta gresesti.

Intr-adevar, greseam la genul asta de teste. Am corectat programul si primesc in continuare 9 WA pe aceleasi teste  Confused
Atunci cand sunt 0 oameni nehotarati am pus conditia:
Cod:
if(abs(x1-x2)==1 || abs(y1-y2)==1)
        {
        g<<0<<'\n';
        continue;
        }
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #11 : Decembrie 12, 2012, 13:45:04 »

Iei in continuare 9WA pentru ca este gresita conditia. Mai gandeste-te de ce NU e asa.
Memorat
Detrol2k
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #12 : Decembrie 14, 2012, 21:17:26 »

Iei in continuare 9WA pentru ca este gresita conditia. Mai gandeste-te de ce NU e asa.

Am observat ca atunci cand distanta pe X e para si distanta pe Y trebuie sa fie para, sau invers, cand distanta pe X e impara si distanta pe Y trebuie sa fie impara, pentru a exista oameni nehotarati (A+1 sau B+1, dupa caz), dar tot degeaba...

Acum am pus conditia asa:
Cod:
if((abs(x1-x2)%2==1 && abs(y1-y2)%2==0) || (abs(x1-x2)%2==0 && abs(y1-y2)%2==1))
        {
         g<<0<<'\n';
         continue;
        }

si mai iau si testul 4, dar tot raman 8 WA  Brick wall
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #13 : Decembrie 14, 2012, 22:03:57 »

Nu ai calculat bine in cazul cand se formeaza un patrat. Uite-te acolo si vezi ce e gresit  Thumb up
« Ultima modificare: Decembrie 14, 2012, 22:15:54 de către Szasz Radu » Memorat
Detrol2k
Strain
*

Karma: -2
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #14 : Decembrie 15, 2012, 20:28:56 »

Nu ai calculat bine in cazul cand se formeaza un patrat. Uite-te acolo si vezi ce e gresit  Thumb up

Ma baga in pamant problema asta.

Atunci cand taxiurile sunt pe aceasi diagonala, am pus asa:
Cod:
if(abs(x1-x2) == abs(y1-y2))
        {
   int c = 0;
long sum = 0;
if(arie(0,max(y1,y2),min(x1,x2),b))
c++;
if(arie(max(x1,x2),0,a,min(y1,y2)))
c++;
sum += arie(0,max(y1,y2),min(x1,x2),b);
sum += arie(max(x1,x2),0,a,min(y1,y2));
sum += diag(min(x1,x2),max(x1,x2)) - c;
            g<<sum<<'\n';
            continue;
        }  
unde arie(x1,y1,x2,y2) returneaza numarul de oameni care asteapta in dreptunghiul cu coltul stanga jos in (x1,y1) si cu coltul dreapta sus in (x2,y2), iar diag() returneaza numarul de oameni de pe diagonala patratului determinat de cele 2 taxiuri.

Mie imi da bine. Am bagat si exemple cand patratul determinat de cele 2 taxiuri este lipit de  OX sau OY, sau cand patratul are latura 1....

Degeaba, tot 8 WA iau  Brick wall Fighting Annoyed Fool
« Ultima modificare: Decembrie 15, 2012, 20:40:59 de către Guianu Leon » Memorat
baTTLe4u_15
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 19



Vezi Profilul
« Răspunde #15 : Ianuarie 08, 2013, 15:37:47 »

Imi dati mai multe teste pentru dx=dy va rog !
Daca se poate si unul mic sa-l pot verifica singur.. Weightlift
Memorat
dutzul
De-al casei
***

Karma: 42
Deconectat Deconectat

Mesaje: 119



Vezi Profilul
« Răspunde #16 : Februarie 01, 2013, 15:50:35 »

mhm mie solutia oficiala mi se pare gresita conform solutiei in toate cazurile exista oameni nehotarati
Memorat
repp4radu
Nu mai tace
*****

Karma: 118
Deconectat Deconectat

Mesaje: 204



Vezi Profilul
« Răspunde #17 : Februarie 01, 2013, 20:12:42 »

Intr-adevar exista un caz cand niciun om nu e nehotarat  Smile
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines