# Grattacieli 65/100

**URL:** <https://forum.olinfo.it/t/grattacieli-65-100/6416>\
**Category:** Olimpiadi\
**Created:** [5 Novembre 2020, 3:29pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416 "2020-11-05T15:29:33Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [5 Novembre 2020, 3:29pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/1 "2020-11-05T15:29:33Z")

</div>

Scusatemi se vi disturbo ancora oggi, ma è da ormai 1 giorno che sto questo esercizio e non ne vengo a capo…  
Il programma dà errore sui subtask 3, 4 e 8. Comunque sul 4 e l’8 qualche testcase è corretto.  
Gli errori sono misti tra timeout e output sbagliato, ma non riesco proprio a capire dove sia l’errore. Vi mando il grader:

```auto
long long costruisci(int N, int M, long long* H, int* A, int* B, int* C) {
    int i,flag=0,tot=0; 
    do{
	  	flag=0;
    	for(i=0; i<M; i++){
    		while(H[B[i]]>H[A[i]]+C[i]){
    			H[B[i]]=H[B[i]]-(H[B[i]]-(H[A[i]]+C[i]));
    			flag=1;
			}
		}
	}while(flag!=0);
		
		
    for(i=0; i<N; i++){
    	tot=tot+H[i];
	}
    return tot;
}

```

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 4:17pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/2 "2020-11-05T16:17:39Z")

</div>

potresti spiegare cosa farebbe il tuo codice?  
So perché il tuo codice va in timeout, ma ancora non visto perché ti dovrebbe dare risultati sbagliati.  
comunque quando invii codice usa  
` 3 volte all’inizio e alla fine così che rimanga identato

---

<div class="post-metadata">

**Author:** ![armyalpaca](https://forum.olinfo.it/user_avatar/forum.olinfo.it/armyalpaca/32/731_2.png) [@armyalpaca](https://forum.olinfo.it/u/armyalpaca)\
**Post date:** [5 Novembre 2020, 4:27pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/3 "2020-11-05T16:27:36Z")

</div>

tot deve essere long long altrimenti va in overflow.

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 4:28pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/4 "2020-11-05T16:28:46Z")

</div>

ah già ahah. Non avevo visto

---

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [5 Novembre 2020, 4:29pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/5 "2020-11-05T16:29:43Z")

</div>

si perfetto, ora mi da solo l’errore timed out. Comunque perchè dovrebbe andare in overflow? Sarebbe troppo piccolo tot se dichiarato int?

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 4:31pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/6 "2020-11-05T16:31:16Z")

</div>

si semplicemente (messaggio deve essere minimo una tot lunghezza)

---

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [5 Novembre 2020, 4:32pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/7 "2020-11-05T16:32:07Z")

</div>

ok, per il timeout quale potrebbe essere il problema?

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 4:34pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/8 "2020-11-05T16:34:25Z")

</div>

semplicemente hai algoritmo con una complessità troppo elevata.  
Dovresti pensare ad un altro modo in cui il problema possa essere rappresentato.

Ogni grattacielo ha una relazione con un altro tramite una condizione. Pensa dunque come poui rappresentare queste relazioni

---

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [5 Novembre 2020, 4:36pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/9 "2020-11-05T16:36:49Z")

</div>

Sono sicuro che il problema non sia di complessità. Alcuni test li risolve molto rapidamente e in alcuni va in time out.

 ![image](https://forum.olinfo.it/uploads/default/original/1X/dc5deb8d3abc08c2de1f494bcc9253a3274e408c.png)

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 4:41pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/10 "2020-11-05T16:41:01Z")

</div>

si è complessità.  
Essendo esponenziale, come cresce la grandezza dell’input quanto aumenta in modo esponenziale le operazioni che fai

---

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [5 Novembre 2020, 4:43pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/11 "2020-11-05T16:43:04Z")

</div>

è vero non ci avevo pensato, scusami. Eppure mi sembrava il modo più semplice per risolverlo. Andrò fuori di testa per questo programma ahahhahah  
Non esiste un modo per scaricare i testcase così da provarli in locale?

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 4:46pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/12 "2020-11-05T16:46:15Z")

</div>

si, puoi farlo in 2 modi:  
1.nella sezione allegati puoi scaricare il grader, e incollare la tua funzione li (ma dovrai soltanto sottomettere il tuo codice con a funzione etc etc)  
2. crearti te un main dove leggi input nello stesso modo e passi come parametri i relativi (stesso metodo di sottomissione)

---

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [5 Novembre 2020, 4:49pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/13 "2020-11-05T16:49:47Z")

</div>

Il main già me l’ero fatto però non ho gli input da dargli. Negli allegati ce ne sono 3 tutti molto semplici e se il problema è il timeout sicuramente non aiutano. Io intendevo se c’era un modo per scaricare gli input dei testcase, così da capire meglio il problema del programma. Comunque grazie mille per il tempo che mi stai dedicando

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 4:51pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/14 "2020-11-05T16:51:40Z")

</div>

ah no, non è possibile scaricare nessun tipo di input dalle sottomissioni

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 4:55pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/15 "2020-11-05T16:55:23Z")

</div>

piuttosto al momento pensa a ciò che ti ho detto prima ( riguardo a come potessi vedere il problema )

---

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [5 Novembre 2020, 4:58pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/16 "2020-11-05T16:58:26Z")

</div>

Diciamo che la logica del mio programma è prendere per ipotesi che tutti i grattacieli siano alla massima altezza consentita. Poi faccio dei controlli e diminuisco i grattacieli che non soddisfano i requisiti fino a quando tutti i vincoli non sono stati rispettati.

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [5 Novembre 2020, 5:05pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/17 "2020-11-05T17:05:26Z")

</div>

hm… non credo sia ottimale.  
Pensa a come potresti gestite questa rete di relazioni

---

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [5 Novembre 2020, 5:06pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/18 "2020-11-05T17:06:53Z")

</div>

ok mi ci metto, grazie ancora 🙂

---

<div class="post-metadata">

**Author:** ![Alex0](https://forum.olinfo.it/user_avatar/forum.olinfo.it/alex0/32/736_2.png) [@Alex0](https://forum.olinfo.it/u/Alex0)\
**Post date:** [7 Novembre 2020, 12:24pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/19 "2020-11-07T12:24:44Z")

</div>

come prosegue?  
/_il messaggio deve esse lungo almeno 20 caratteri_/

---

<div class="post-metadata">

**Author:** ![imBenjamin741](https://forum.olinfo.it/user_avatar/forum.olinfo.it/imbenjamin741/32/739_2.png) [@imBenjamin741](https://forum.olinfo.it/u/imBenjamin741)\
**Post date:** [7 Novembre 2020, 12:57pm UTC](https://forum.olinfo.it/t/grattacieli-65-100/6416/20 "2020-11-07T12:57:27Z")

</div>

Sinceramente ci ho rinunciato dato che già ci ho perso molto tempo. Non ho idea di quale sia la soluzione ahahaha. Sto comunque facendo altri programmi sempre per allenarmi in vista delle nazionali

[Pagina seguente](https://forum.olinfo.it/t/grattacieli-65-100/6416.md?page=2)
