Il mio algoritmo calcola 2 distanze:
- distanza tra i due insetti in Linea RETTA -> in questo caso la distanza corrisponde al rumore che
farebbero incontrandosi.
- somma delle distanze tra ogni insetto e il centro del letto. A questa distanza sottraggo DUE volte il raggio perchè nel momento in cui gli insetti camminano nel cerchio del letto non creano rumore.
Prendo la distanza minore e la stampo NON in stdout, ma in un file “output.txt” usando la formattazione del grader proposto dal problema.
Ora io ho seguito il template e tutto quanto, la cosa molto strana è che mi completa solo il primo subtask da 10 punti, quindi suppongo che non sia un problema di approsimazione e nemmeno di logica sinceramente.
Oppure scusate un attimo ma nel subtask dove Xa=Xb=Xc la soluzione è sempre quella di passare per il letto per forza , è una questione di geometria/matematica : la traiettoria più breve tra due punti è sempre una retta quindi devono per forza passare per il letto indipendentemente dal fatto che abbia raggio 0 o raggio 1 milione.
Non se gli insetti sono già all’interno del cerchio, comunque è più facile aiutarti se posti il codice.
1 Mi Piace
Ciao,ho dato per presupposto totalmente a caso che i bugs si generassero fuori dal letto… Grazie mille, ora è 100/100. La prossima volta leggerò meglio la consegna.
Oppure scusate un attimo ma nel subtask dove Xa=Xb=Xc la soluzione è sempre quella di passare per il letto per forza , è una questione di geometria/matematica : la traiettoria più breve tra due punti è sempre una retta quindi devono per forza passare per il letto indipendentemente dal fatto che abbia raggio 0 o raggio 1 milione.
Ma se Xc è a sinistra di Xa e Xb e dista dal più vicino dei due più di R?
Discorso analogo se è destra di entrambi e dista dal più vicino dei due più di R.
Comunque in generale vanno gestiti 4 casi diversi.
non capisco cosa intendi con “se Xc è a sinistra di Xa e Xb”. Se Xc=Xa=Xb si trovano tutti sulla stessa ascissa e ciò significa che sono disposti in maniera tale da potervi tracciare una retta parallela all’asse delle y passante per tre punti(centro, bug1,bug2). Io non ho distinto 4 casi e ho fatto comunque 100/100. Forse hai malinteso il mio punto
Hai ragione, ho scritto male, il discorso va fatto con le Y:
Esempio
A(0,1),B(0,3) C(0,8) R=2
oppure
A(0,1),B(0,3) C(0,-8) R=2
In entrambi i casi il cerchio (il letto) è esterno alla congiungente fra A e B
ah ok adesso ho capito cosa intendi, si beh io ho semplicemente calcolato due distanze come ho spiegato all inizio e ho scelto quella meno rumorosa, l’unica cosa di cui non avevo tenuto conto come ha detto frakkio è dei bugs che potrebbero già generarsi sul letto
I quattro casi dei quali parlavo in sostanza riguardano quello che ha detto @frakkiobello e cioè le posizioni dei bugs rispetto al letto:
1 tutti e due dentro
2 A dentro B fuori
…