Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Γενικά θέματα για το διαγωνισμό. Ερωτήσεις, προτάσεις και ό,τι άλλο ταιριάζει.
Απάντηση
Γιώργος Λ.
Δημοσιεύσεις: 4
Εγγραφή: Παρ Ιαν 27, 2017 5:41 pm

Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσίευση από Γιώργος Λ. »

Έχοντας δημιουργήσει και τεστάρει το πρόγραμμα μου με όλα τα δωσμένα παραδείγματα προσπαθήσα να το υποβάλλω. Το tester αναγνώρισε το αρχείο εξόδου το όποιο μέσα όμως είχε κάποιες ανεξήγητες τιμές. Έτρεξα το πρόγραμμα τοπικά με ίδιο αρχείο εισόδου με αυτό του παραδείγματος και η έξοδος ήταν η προβλεπόμενη. Τι κάνω λάθος; :| :|
Άβαταρ μέλους
Sinnosuke
Δημοσιεύσεις: 8
Εγγραφή: Τετ Αύγ 24, 2016 12:23 am

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσίευση από Sinnosuke »

Μήπως χρησιμοποιείς κάπου μεταβλητή που δεν της έχεις αναθέσει καμία τιμή; Το έχω πάθει αρκετές φορές και πάντα αυτό φταίει.
Γιώργος Λ.
Δημοσιεύσεις: 4
Εγγραφή: Παρ Ιαν 27, 2017 5:41 pm

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσίευση από Γιώργος Λ. »

Ευχαριστώ πολύ αλλά φοβάμαι πως κάθε μεταβλητή είναι ορισμένη και χρησιμοποιημένη. Και για κάθε αρχείο εισόδου το αποτέλεσμα είναι το αναμενόμενο
Γιώργος Λ.
Δημοσιεύσεις: 4
Εγγραφή: Παρ Ιαν 27, 2017 5:41 pm

Βοήθεια!

Δημοσίευση από Γιώργος Λ. »

Έχω ολοκληρώσει το πρόγραμμα για την πρώτη φάση του ΠΔΠ τα αποτελέσματα τοπικά είναι τα αναμενόμενα σε πλήθος εισόδων, μεταξύ των οποίων και αυτές που χρησιμοποιεί το tester στην ιστοσελίδα υποβολής. Ωστόσο έρχομαι αντιμέτωπος με μήνυμα αποτυχίας. Μπορεί κάποιος να μου εξηγήσει τι συμβαίνει;;;;;;;;;;;; Ευχαριστώ εκ των προτέρων
Τελευταία επεξεργασία από το μέλος Κηπουρίδης την Σάβ Ιαν 28, 2017 6:48 pm, έχει επεξεργασθεί 1 φορά συνολικά.
Λόγος: Δημοσίευση κώδικα πριν την λήξη των υποβολών Α Φάσης
infinity
Δημοσιεύσεις: 38
Εγγραφή: Σάβ Νοέμ 26, 2011 4:08 pm

Re: Βοήθεια!

Δημοσίευση από infinity »

Καλησπέρα Γιώργο,

Μιας και η περίοδος υποβολών δεν έχει λήξει ακόμα θα σε παρακαλούσα να μην δημοσιεύεις την λύση σου στο forum. Επιπλέον, είναι πολύ δύσκολο για κάποιον που θα δει τον κώδικά σου χωρίς καμία επεξήγηση να καταλάβει τι θες να κάνεις και τι πάει στραβά. Ο καθένας έχει τον δικό του τρόπο με τον οποίο αποτυπώνει την λύση του σε κώδικα και είναι πολύ δύσκολο να προσαρμοστεί στους τρόπους του άλλου.

Θα πω ωστόσο πως μάλλον αυτό που γίνεται είναι ότι βγαίνεις εκτός ορίων σε κάποιον πίνακα και στον υπολογιστή σου τυχαίνει απλά να μην επηρρεάζει το αποτέλεσμα.

Παρ' όλ' αυτά θα ήταν καλό αν μπορείς να διαγράψεις τον κώδικά σου, ή αν δεν γίνεται να τον αφαιρέσει κάποιος διαχειριστής.

Καλή συνέχεια και καλή επιτυχία :)
Γιώργος Λ.
Δημοσιεύσεις: 4
Εγγραφή: Παρ Ιαν 27, 2017 5:41 pm

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσίευση από Γιώργος Λ. »

Ζήτω συγνώμη για την αναστάτωση
Απλώς η κατάσταση είναι απίστευτα στρεσογόνος
Δεν έπρεπε να ανεβάσω κώδικά ούτε να ανεβάσω ξανά το ίδιο θέμα
Δεν πρόκειται να επαναληφθεί
infinity
Δημοσιεύσεις: 38
Εγγραφή: Σάβ Νοέμ 26, 2011 4:08 pm

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσίευση από infinity »

χαχαχ, ντάξει μην ανησυχείς δεν υπάρχει πρόβλημα :P

Σχετικά με το πρόβλημα που είχες πάντως προσπάθησε να κάνεις όλους τους πίνακες σου global, δήλωσε τους δηλαδή έξω από την main. Παίζει να σου διορθωθεί το πρόβλημα έτσι.
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσίευση από Κηπουρίδης »

infinity έγραψε:χαχαχ, ντάξει μην ανησυχείς δεν υπάρχει πρόβλημα :P

Σχετικά με το πρόβλημα που είχες πάντως προσπάθησε να κάνεις όλους τους πίνακες σου global, δήλωσε τους δηλαδή έξω από την main. Παίζει να σου διορθωθεί το πρόβλημα έτσι.
Κι ο λογος ειναι οτι οι πινακες αρχικοποιουνται απευθειας σε 0 οταν ειναι global, ενω οταν δεν ειναι αρχικοποιουνται σε ο,τι γουσταρουν.
Ετσι μπορει τοπικα, στο πισι σου, να αρχικοποιηθηκαν σε 0 καποια πραγματα, ενω στο hellenico οχι. Συνεπως να δινουν και διαφορετικο αποτελεσμα.

Παρεμπιπτοντως, το hellenico ελεγχει με πολλα testcases αλλα ανακοινωνει λιγα απο αυτα (ωστε να μη μπορει καποιος να κανει προγραμματα που απλα να πετανε τη σωστη απαντηση, χωρις να την υπολογιζουν). Μηπως πραγματι περνας τα testcases που εχουν ανακοινωθει, και στο πισι σου και στο hellenico, κι εχεις σφαλμα σε αλλα, πιο μεγαλα, που ειναι κρυφα;

Πρωτα ο Θεος αυριο θα ανεβασω ενα ακομα ενδεικτικο testcase με πολυ μεγαλο Ν για να το τεσταρεις.

Υ.Γ.: Αφου διορθωθηκε το προβλημα, ουτε γατα ουτε ζημια. Δεν προλαβε και κανεις να το δει, μη φοβασαι :D.
Λύσεις θεμάτων ΠΔΠ: 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/
Άβαταρ μέλους
switch
Δημοσιεύσεις: 90
Εγγραφή: Σάβ Δεκ 05, 2015 11:46 am
Τοποθεσία: 127.0.0.1

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσίευση από switch »

Εκτός από την αρχικοποίηση των Global πινάκων, ένας σημαντικός περιορισμός που πρέπει να αποφεύγουμε τη χρήση τοπικών μεγάλων auto πινάκων είναι ότι μας περιορίζουν το stack, άρα και το επίπεδο recursion που ίσως να θέλουμε να φτάσουμε.

Τα 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)
Απάντηση