Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής
-
- Δημοσιεύσεις: 4
- Εγγραφή: Παρ Ιαν 27, 2017 5:41 pm
Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής
Έχοντας δημιουργήσει και τεστάρει το πρόγραμμα μου με όλα τα δωσμένα παραδείγματα προσπαθήσα να το υποβάλλω. Το tester αναγνώρισε το αρχείο εξόδου το όποιο μέσα όμως είχε κάποιες ανεξήγητες τιμές. Έτρεξα το πρόγραμμα τοπικά με ίδιο αρχείο εισόδου με αυτό του παραδείγματος και η έξοδος ήταν η προβλεπόμενη. Τι κάνω λάθος;
Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής
Μήπως χρησιμοποιείς κάπου μεταβλητή που δεν της έχεις αναθέσει καμία τιμή; Το έχω πάθει αρκετές φορές και πάντα αυτό φταίει.
-
- Δημοσιεύσεις: 4
- Εγγραφή: Παρ Ιαν 27, 2017 5:41 pm
Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής
Ευχαριστώ πολύ αλλά φοβάμαι πως κάθε μεταβλητή είναι ορισμένη και χρησιμοποιημένη. Και για κάθε αρχείο εισόδου το αποτέλεσμα είναι το αναμενόμενο
-
- Δημοσιεύσεις: 4
- Εγγραφή: Παρ Ιαν 27, 2017 5:41 pm
Βοήθεια!
Έχω ολοκληρώσει το πρόγραμμα για την πρώτη φάση του ΠΔΠ τα αποτελέσματα τοπικά είναι τα αναμενόμενα σε πλήθος εισόδων, μεταξύ των οποίων και αυτές που χρησιμοποιεί το tester στην ιστοσελίδα υποβολής. Ωστόσο έρχομαι αντιμέτωπος με μήνυμα αποτυχίας. Μπορεί κάποιος να μου εξηγήσει τι συμβαίνει;;;;;;;;;;;; Ευχαριστώ εκ των προτέρων
Τελευταία επεξεργασία από το μέλος Κηπουρίδης την Σάβ Ιαν 28, 2017 6:48 pm, έχει επεξεργασθεί 1 φορά συνολικά.
Λόγος: Δημοσίευση κώδικα πριν την λήξη των υποβολών Α Φάσης
Λόγος: Δημοσίευση κώδικα πριν την λήξη των υποβολών Α Φάσης
Re: Βοήθεια!
Καλησπέρα Γιώργο,
Μιας και η περίοδος υποβολών δεν έχει λήξει ακόμα θα σε παρακαλούσα να μην δημοσιεύεις την λύση σου στο forum. Επιπλέον, είναι πολύ δύσκολο για κάποιον που θα δει τον κώδικά σου χωρίς καμία επεξήγηση να καταλάβει τι θες να κάνεις και τι πάει στραβά. Ο καθένας έχει τον δικό του τρόπο με τον οποίο αποτυπώνει την λύση του σε κώδικα και είναι πολύ δύσκολο να προσαρμοστεί στους τρόπους του άλλου.
Θα πω ωστόσο πως μάλλον αυτό που γίνεται είναι ότι βγαίνεις εκτός ορίων σε κάποιον πίνακα και στον υπολογιστή σου τυχαίνει απλά να μην επηρρεάζει το αποτέλεσμα.
Παρ' όλ' αυτά θα ήταν καλό αν μπορείς να διαγράψεις τον κώδικά σου, ή αν δεν γίνεται να τον αφαιρέσει κάποιος διαχειριστής.
Καλή συνέχεια και καλή επιτυχία
Μιας και η περίοδος υποβολών δεν έχει λήξει ακόμα θα σε παρακαλούσα να μην δημοσιεύεις την λύση σου στο forum. Επιπλέον, είναι πολύ δύσκολο για κάποιον που θα δει τον κώδικά σου χωρίς καμία επεξήγηση να καταλάβει τι θες να κάνεις και τι πάει στραβά. Ο καθένας έχει τον δικό του τρόπο με τον οποίο αποτυπώνει την λύση του σε κώδικα και είναι πολύ δύσκολο να προσαρμοστεί στους τρόπους του άλλου.
Θα πω ωστόσο πως μάλλον αυτό που γίνεται είναι ότι βγαίνεις εκτός ορίων σε κάποιον πίνακα και στον υπολογιστή σου τυχαίνει απλά να μην επηρρεάζει το αποτέλεσμα.
Παρ' όλ' αυτά θα ήταν καλό αν μπορείς να διαγράψεις τον κώδικά σου, ή αν δεν γίνεται να τον αφαιρέσει κάποιος διαχειριστής.
Καλή συνέχεια και καλή επιτυχία
-
- Δημοσιεύσεις: 4
- Εγγραφή: Παρ Ιαν 27, 2017 5:41 pm
Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής
Ζήτω συγνώμη για την αναστάτωση
Απλώς η κατάσταση είναι απίστευτα στρεσογόνος
Δεν έπρεπε να ανεβάσω κώδικά ούτε να ανεβάσω ξανά το ίδιο θέμα
Δεν πρόκειται να επαναληφθεί
Απλώς η κατάσταση είναι απίστευτα στρεσογόνος
Δεν έπρεπε να ανεβάσω κώδικά ούτε να ανεβάσω ξανά το ίδιο θέμα
Δεν πρόκειται να επαναληφθεί
Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής
χαχαχ, ντάξει μην ανησυχείς δεν υπάρχει πρόβλημα
Σχετικά με το πρόβλημα που είχες πάντως προσπάθησε να κάνεις όλους τους πίνακες σου global, δήλωσε τους δηλαδή έξω από την main. Παίζει να σου διορθωθεί το πρόβλημα έτσι.
Σχετικά με το πρόβλημα που είχες πάντως προσπάθησε να κάνεις όλους τους πίνακες σου global, δήλωσε τους δηλαδή έξω από την main. Παίζει να σου διορθωθεί το πρόβλημα έτσι.
- Κηπουρίδης
- Δημοσιεύσεις: 397
- Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm
Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής
Κι ο λογος ειναι οτι οι πινακες αρχικοποιουνται απευθειας σε 0 οταν ειναι global, ενω οταν δεν ειναι αρχικοποιουνται σε ο,τι γουσταρουν.infinity έγραψε:χαχαχ, ντάξει μην ανησυχείς δεν υπάρχει πρόβλημα
Σχετικά με το πρόβλημα που είχες πάντως προσπάθησε να κάνεις όλους τους πίνακες σου global, δήλωσε τους δηλαδή έξω από την main. Παίζει να σου διορθωθεί το πρόβλημα έτσι.
Ετσι μπορει τοπικα, στο πισι σου, να αρχικοποιηθηκαν σε 0 καποια πραγματα, ενω στο hellenico οχι. Συνεπως να δινουν και διαφορετικο αποτελεσμα.
Παρεμπιπτοντως, το hellenico ελεγχει με πολλα testcases αλλα ανακοινωνει λιγα απο αυτα (ωστε να μη μπορει καποιος να κανει προγραμματα που απλα να πετανε τη σωστη απαντηση, χωρις να την υπολογιζουν). Μηπως πραγματι περνας τα testcases που εχουν ανακοινωθει, και στο πισι σου και στο hellenico, κι εχεις σφαλμα σε αλλα, πιο μεγαλα, που ειναι κρυφα;
Πρωτα ο Θεος αυριο θα ανεβασω ενα ακομα ενδεικτικο testcase με πολυ μεγαλο Ν για να το τεσταρεις.
Υ.Γ.: Αφου διορθωθηκε το προβλημα, ουτε γατα ουτε ζημια. Δεν προλαβε και κανεις να το δει, μη φοβασαι .
Λύσεις θεμάτων ΠΔΠ: https://pdp-archive.github.io/
Μπούσουλας διαβάσματος ΠΔΠ: http://snf-800715.vm.okeanos.grnet.gr/PDP/
Tutorials: https://kallinikos.github.io/
Επίσημο forum ΠΔΠ: https://www.pdpforum.eu.org/forum/
Μπούσουλας διαβάσματος ΠΔΠ: http://snf-800715.vm.okeanos.grnet.gr/PDP/
Tutorials: https://kallinikos.github.io/
Επίσημο forum ΠΔΠ: https://www.pdpforum.eu.org/forum/
Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής
Εκτός από την αρχικοποίηση των Global πινάκων, ένας σημαντικός περιορισμός που πρέπει να αποφεύγουμε τη χρήση τοπικών μεγάλων auto πινάκων είναι ότι μας περιορίζουν το stack, άρα και το επίπεδο recursion που ίσως να θέλουμε να φτάσουμε.
Τα runtime error από έλλειψη stack συνήθως δεν προσφέρουν κάποιο κατανοητό μήνυμα για να καταλάβεις τι πρόβλημα υπήρξε.
Η χρήση C++ containers όπως vector, stack, queue, list δεν έχουν τέτοιο περιορισμό (δεσμεύουν δυναμικά την μνήμη τους με new/delete)
Τα runtime error από έλλειψη stack συνήθως δεν προσφέρουν κάποιο κατανοητό μήνυμα για να καταλάβεις τι πρόβλημα υπήρξε.
Κώδικας: Επιλογή όλων
int test1[1000000]; //σωστή λύση
int main(){...
int test2[1000000];//κακή επιλογή!!!! Μεγάλος πίνακας δεσμεύει
//πολύ stack.
//Το περιεχόμενο του είναι τυχαίο
static int test3[1000000];//και αυτή είναι σωστή λύση
//(δεν δεσμεύει stack)
...
}
Η χρήση C++ containers όπως vector, stack, queue, list δεν έχουν τέτοιο περιορισμό (δεσμεύουν δυναμικά την μνήμη τους με new/delete)