Non so cosa sbaglio nel codice e anche se completo il subtask 1 non mi da nessun punto. Il codice lo ho testato con gli esempi e funziona alla grande, inoltre nel feedback la valutazione mi da 0/100 anche se alcuni test dei vari subtask li svolgo correttamente. Qualcuno mi saprebbe aiutare?
Per ottenere i punti di un subtask, la tua soluzione deve risolvere correttamente tutti i test che contiene. Quindi per esempio questa situazione corrisponde ad avere 0 punti per il subtask 3, nonostante la mia soluzione abbia terminato con una risposta corretta in una parte dei test:
Mentre per ottenere i punti di un subtask devi risolverlo completamente, come in questo caso:
Ah, ok.
Ma se in locale il programma funziona, come faccio a capire e quindi a modificarlo, al fine di avere tutti i test dei vari subtasks completi?
Allego la mia soluzione all’ esercizio della torre di Pisa.
Qualcuno mi potrebbe dire cosa non va?
#include <iostream>
#include <vector>
using namespace std;
int salta(int N, vector<int> S, vector<int> A,vector<int> B){
int i;
for(i=0;i<N;i++){
if(A[i]>=N || B[i]>=N){
return -1;
}
}
A[N-1]=1;
for(i=0;i<N;i++){
A[i]=A[i]+i;
B[i]=B[i]+i;
}
i=0;
int segue=0;
while(A[i]!=N || B[i]!=N){
if(S[A[i]]<=segue){
i=A[i];
}
else if(S[B[i]]<=segue){
i=A[i];
}
else if(S[A[i]] >segue && S[B[i]]>segue){
segue++;
}
}
return segue;
}
Questo sta a te
Un modo può essere generare nuovi casi a mano e verificare che il programma risponda correttamente, oppure scrivere un’altra soluzione, magari meno efficiente (anche che le prova tutte volendo) e trovare un caso in cui le due soluzioni danno risposte diverse.
Poi ci sono degli errori comuni che puoi verificare di non aver fatto:
- Variabili non inizializzate
- Uso degli
int
invece che ilong long
quando la risposta è abbastanza grande (sopra i ~2 miliardi) - Errori nelle tue assunzioni (questo è molto vago, ma vuol dire che l’idea dietro alla tua soluzione è sbagliata)
- …
ah ok, ho capito, grazie
comunque il subtask 1 è tutto giusto ma non mi assegna nessun punto
Tipicamente il primo subtask corrisponde ai casi d’esempio, e vale zero punti perchè la risposta giusta è già contenuta nel testo del problema