# Aiuto per Chasing (ois\_chasing)

**URL:** <https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847>\
**Category:** Aiuto\
**Created:** [17 Gennaio 2026, 4:37pm UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847 "2026-01-17T16:37:18Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![GNCNK](https://forum.olinfo.it/user_avatar/forum.olinfo.it/gncnk/32/2751_2.png) [@GNCNK](https://forum.olinfo.it/u/GNCNK)\
**Post date:** [17 Gennaio 2026, 4:37pm UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/1 "2026-01-17T16:37:18Z")

</div>

Ciao a tutti, ho bisogno di aiuto per risolvere il problema [Chasing](https://training.olinfo.it/task/ois_chasing).

Ecco il mio codice:

```auto
#!/usr/bin/env python3
# NOTE: it is recommended to use this even if you don't understand the following code.

import sys
import math

# uncomment the two following lines if you want to read/write from files
# sys.stdin = open('input.txt')
# sys.stdout = open('output.txt', 'w')

Dx, Dy, Ds = map(int, input().strip().split())

Bx, By, Bs = map(int, input().strip().split())

dir = input().strip()

# INSERT YOUR CODE HERE

x = abs(Bx - Dx)
y = abs(By - Dy)

if Bs < Ds:
    v = Ds - Bs
    T = math.ceil((x+y)/v)
else:
    if dir == 'R' and Dx > Bx or dir == 'L' and Dx < Bx or dir == 'U' and Dy > By or dir == 'D' and Dy < By:
        v = Ds + Bs
        T = math.ceil((x+y)/v)
    else:
        T = -1
    
print(T)

sys.stdout.close()

```

Grazie mille in anticipo!

---

<div class="post-metadata">

**Author:** ![JiangLorenzo](https://forum.olinfo.it/user_avatar/forum.olinfo.it/jianglorenzo/32/2466_2.png) [@JiangLorenzo](https://forum.olinfo.it/u/JiangLorenzo)\
**Post date:** [18 Gennaio 2026, 5:26am UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/2 "2026-01-18T05:26:15Z")

</div>

Ciao!  
Se ti può essere utile questi sono 2 test case in cui il tuo codice sbaglia:

```auto
1 2 4
4 6 1
D

```

```auto
1 2 1
6 4 3
D

```

Ho usato questo tuo codice per eseguire:

```auto
import sys
import math

sys.stdin = open("input.txt")
sys.stdout = open("output.txt", "w")

Dx, Dy, Ds = map(int, input().strip().split())
Bx, By, Bs = map(int, input().strip().split())

dir = input().strip()

x = abs(Bx - Dx)
y = abs(By - Dy)

if Bs < Ds:
    v = Ds - Bs
    T = math.ceil((x+y)/v)
else:
    if dir == "R" and Dx > Bx or dir == "L" and Dx < Bx or dir == "U" and Dy > By or dir == "D" and Dy < By:
        v = Ds + Bs
        T = math.ceil((x+y)/v)
    else:
        T = -1  

print(T)

sys.stdout.close()

```

---

<div class="post-metadata">

**Author:** ![GNCNK](https://forum.olinfo.it/user_avatar/forum.olinfo.it/gncnk/32/2751_2.png) [@GNCNK](https://forum.olinfo.it/u/GNCNK)\
**Post date:** [18 Gennaio 2026, 9:18am UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/3 "2026-01-18T09:18:16Z")

</div>

Tenendo traccia dei due esempi dati (di cui soluzione è 2 e -1?) ho modificato il codice così:  
Ma mi esce comunque sbagliato un unico caso che è il testcase 33 (subtask 5 e 6).  
Questo mi fa prendere solo 50/100.

```python
#!/usr/bin/env python3
# NOTE: it is recommended to use this even if you don't understand the following code.

import sys
import math

# uncomment the two following lines if you want to read/write from files
# sys.stdin = open('input.txt')
# sys.stdout = open('output.txt', 'w')

Dx, Dy, Ds = map(int, input().strip().split())

Bx, By, Bs = map(int, input().strip().split())

dir = input().strip()

# INSERT YOUR CODE HERE

x = abs(Bx - Dx)
y = abs(By - Dy)

if dir == 'R' or dir == 'L':
    t = math.ceil(y / Ds)
    xB = Bx + Bs*t
else:
    t = math.ceil(x / Ds)
    yB = By + Bs * t

if dir == 'R' and xB <= Dx and Dx >= Bx or dir == 'L' and Dx <= Bx and xB >= Dx or dir == 'U' and yB <= Dy and Dy >= By or dir == 'D' and yB >= Dy and Dy <= By:
    v = Ds + Bs
else:
    v = Ds - Bs

if (v > 0):
    T = math.ceil((x+y)/v)
else:
    T = -1

    
print(T)

sys.stdout.close()
```

---

<div class="post-metadata">

**Author:** ![fve5](https://forum.olinfo.it/user_avatar/forum.olinfo.it/fve5/32/3229_2.png) [@fve5](https://forum.olinfo.it/u/fve5)\
**Post date:** [18 Gennaio 2026, 5:37pm UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/4 "2026-01-18T17:37:16Z")

</div>

> [@Come chiedere aiuto sul forum](https://forum.olinfo.it/t/come-chiedere-aiuto-sul-forum/8887):
>
> Spesso si trovano sul forum delle richieste di aiuto alle quali è piuttosto difficile dare un contributo, perché la richiesta è espressa male o non si ha sufficiente materiale da capire dove sia il problema. Lascio qualche punto che spero possa essere utile a chi vuole chiedere aiuto per la risoluzione di un problema. 1. Il titolo Titoli come “Non riesco a capire perché non funziona” o “Cosa c’è di sbagliato nella mia soluzione” disincentivano chi legge il forum a prendersi del tempo per rispo…

---

<div class="post-metadata">

**Author:** ![v.bizzarri](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/7c8e57/32.png) [@v.bizzarri](https://forum.olinfo.it/u/v.bizzarri)\
**Post date:** [21 Gennaio 2026, 12:58am UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/5 "2026-01-21T00:58:06Z")

</div>

Anch’io sbagliavo solo il TC 33 prima di risolvere correttamente questo:  
10 5 5  
8 15 2  
R  
soluzione corretta 3 (2,666 periodico)  
ma prima il mio codice dava 2.  
Provalo.

---

<div class="post-metadata">

**Author:** ![melobuono](https://forum.olinfo.it/user_avatar/forum.olinfo.it/melobuono/32/2820_2.png) [@melobuono](https://forum.olinfo.it/u/melobuono)\
**Post date:** [23 Gennaio 2026, 7:05am UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/6 "2026-01-23T07:05:15Z")

</div>

Ciao,ho letto il tuo codice in py,stai attento a calcolare bene le distanze,se vuoi scrivo la mia soluzione perro in cpp

---

<div class="post-metadata">

**Author:** ![GNCNK](https://forum.olinfo.it/user_avatar/forum.olinfo.it/gncnk/32/2751_2.png) [@GNCNK](https://forum.olinfo.it/u/GNCNK)\
**Post date:** [23 Gennaio 2026, 4:34pm UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/7 "2026-01-23T16:34:23Z")

</div>

se riesci mi potresti scrivere la soluzione (anche in cpp), perché non capisco cosa ho sbagliato.

---

<div class="post-metadata">

**Author:** ![v.bizzarri](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/v/7c8e57/32.png) [@v.bizzarri](https://forum.olinfo.it/u/v.bizzarri)\
**Post date:** [23 Gennaio 2026, 4:57pm UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/8 "2026-01-23T16:57:00Z")

</div>

Nell’esempio che ho proposto intanto che il cane si porta alla stessa altezza della palla, ci vogliono 2 unità di tempo, questa è arrivata da 8 a 12. Adesso è più a destra del cane e questo adesso la deve inseguire. (velocità relativa 5-2=3 con un Deltax=12-10=2. Tempo aggiuntivo 2/3.

---

<div class="post-metadata">

**Author:** ![GNCNK](https://forum.olinfo.it/user_avatar/forum.olinfo.it/gncnk/32/2751_2.png) [@GNCNK](https://forum.olinfo.it/u/GNCNK)\
**Post date:** [23 Gennaio 2026, 5:21pm UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/9 "2026-01-23T17:21:28Z")

</div>

Grazie mille, sono riuscito a risolverlo,  
ero arrivato alla soluzione, ma avevo arrotondato anche in questa per del codice (avevo fatto math.ceil anche per t) e poi ho sommato :

```python

if dir == 'R' or dir == 'L':
    t = abs(Dy-By)/Ds
    if dir == 'R':
        Bx = Bx + Bs*t
    else:
        Bx = Bx - Bs*t
else:
    t = abs(Dx-Bx)/Ds
    if dir == 'U':
        By = By + Bs*t
    else:
        By = By - Bs*t

```

---

<div class="post-metadata">

**Author:** ![Dz09](https://forum.olinfo.it/user_avatar/forum.olinfo.it/dz09/32/2331_2.png) [@Dz09](https://forum.olinfo.it/u/Dz09)\
**Post date:** [1 Febbraio 2026, 1:57pm UTC](https://forum.olinfo.it/t/aiuto-per-chasing-ois-chasing/9847/10 "2026-02-01T13:57:03Z")

</div>

ciao, scusate se crivo sott questo post, ma volevo chiedere come creare un nuovo argomento, pk non ho trovto il bottone per crearne uno nuovo.  
Grazie mille se riuscite a scrivermi.
