ESITI su esercizio 1: intervalSum VR090274-157.27.241.182-intervalSum scrive su cout (non deve), risposte corrette solo su 0 e 2, da risposte sbagliate e spesso va in loop VR361042-157.27.241.185-intervalSum veloce su tutte ma, eccetto istanza 0 (esempio del testo), le canna tutte VR364760-157.27.241.197-intervalSum eccetto istanza 0 (esempio del testo) va sempre in segmentation fault. Andando a vedere l'algoritmo avrebbe voluto essere quadratico, correggendo io il codice (debole in programmazione: allocazione di matrice variabile "int matrice[n][n]") restituisce risultati corretti (ma algoritmo quadratico anche in memoria!) ma salta su caso limite k=n (istanza 2) VR364850-157.27.241.193-intervalSum approccio lineare ma riesce ad andare in time out per pessima implementazione con strutture dati eccessive, uso dinamico della memoria e puntatori. inoltre scrive su cout (non deve!) e vuole come parametro il file da cui leggere (attenersi alle specifiche!) (tra l'altro anche la scrittura su cout rallenta) VR365411-157.27.241.194-intervalSum e' quadratico e troppo lento dall'istanza 13 in poi, risposte corrette solo su 0 e 9, mentre sulle altre istanze risponde -1 VR366261-157.27.241.189-IntervalSum veloce su tutte ma le canna anche tutte ritornando valori enormi inoltre scrive su cout (non deve) e su un file "output1.txt" (attenersi alle specifiche!) ISTANZE: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 TOTALE risposta corretta 41 223 -1101 19 894 1004 103 168 95 1863 1850 2621 3536 3473 5543 4734 4686 5754 5101 5264 6104 21 VR090274-182-intSum YES dif YES loop loop dif loop loop loop loop loop loop loop loop loop loop loop loop loop loop loop 2 VR361042-185-intSum YES 245 465 36 dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif 1 VR364760-197-intSum YES SF SF SF SF SF SF SF SF SF SF SF SF SF SF SF SF SF SF SF SF 1 modVR364760-197-intSum YES YES 0 YES YES YES YES SF SF SF SF SF SF SF SF SF SF SF SF SF SF 6 VR364850-193-intSum YES 201 -343 -36 YES 933 102 166 YES 1809 YES dif dif YES YES YES Time Time Time dif Time 7+4 Time con risp. corretta VR365411-194-intSum YES -1 -1 -1 -1 -1 -1 -1 -1 YES -1 -1 -1 time time time time time time time time 2 VR366261-189-intSum dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif dif 0 YES = risposta corretta dif = risposta errata che non ha senso riportare = risposta errata riportata nel valore SF = segmentation fault loop = va in loop numb = non effettua alcun output Time = tempo eccessivo COMMENTI SU ALCUNI DEI CODICI CHE HO DECISO DI VISIONARE: VR090274-157.27.241.182-intervalSum scrive su cout (non deve), risposte corrette solo su 0 e 2, da risposte sbagliate e spesso va in loop 152 linee di codice! allocazioni dinamiche e puntatori! inutili gestioni di eccezzione di lettura/scrittura su file, brutto codice. Algoritmo: comprendo e trovo corretta solo la funzione Find_Max che per altro non necessita il confronto su primo elemento. VR361042-157.27.241.185-intervalSum veloce su tutte ma non scrive da nessuna parte inutili allocazioni dinamiche e puntatori! Algoritmo: 1. calcola il vettore di somme prefisse da sinistra 2. fissa come posizione di sinistra (min) la posizione che minimizza somme prefisse: 3. fissa come posizione di destra (max) la posizione a destra di (min) che massimizza somme prefisse: int min = minPos(vettScan, 0, n - k); int max = maxPos(vettScan, min, n); int result = vettScan[max] - vettScan[min]; PROBLEMI: ammissibilita': nulla garantisce che la posizione di destra si discosti sufficientemente da quella di sinistra ottimalita': e' facile costruire controesempi a questa politica greedy che fissa la posizione di sinistra VR364760-157.27.241.197-intervalSum eccetto istanza 0 (esempio del testo) va sempre in segmentation fault. Andando a vedere l'algoritmo avrebbe voluto essere quadratico, correggendo io il codice (debole in programmazione: allocazione di matrice variabile "int matrice[n][n]") restituisce risultati corretti (ma algoritmo quadratico anche in memoria!) ma salta su caso limite k=n (istanza 2)