Σχετικά με τον Διαγωνισμό

Γενικά θέματα για το διαγωνισμό. Ερωτήσεις, προτάσεις και ό,τι άλλο ταιριάζει.
Απάντηση
Άβαταρ μέλους
xDev
Δημοσιεύσεις: 8
Εγγραφή: Παρ Νοέμ 29, 2013 9:51 pm
Τοποθεσία: Αθήνα

Σχετικά με τον Διαγωνισμό

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

Είναι η πρώτη φορά που θα συμμετάσχω στον ΠΔΠ και θα ήθελα αν μπορείτε να με "διαφωτίσετε" σχετικά με κάποια θέματα :D
1. Ο κώδικας θα πρέπει να έχει σχόλια;
2. Με ποιόν τρόπο βρίσκω τον χρόνο εκτέλεσης του προγράμματος και την χρησιμοποιούμενη μνήμη; :?:
3. Τα αρχεία εισόδου θα είναι σωστά ή θα πρέπει κάθε φορά να τα ελέγχω;
Ευχαριστώ εκ των προτέρων :D
Εικόνα
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Re: Σχετικά με τον Διαγωνισμό

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

1. Δεν απαιτείται να βάλεις σχόλια, αν σε βοηθάν βάλε, αν δε σε βοηθάν μη βάζεις. Σε κάθε περίπτωση ο τρόπος ελέγχου είναι να τρέξουν σε κάποια input το πρόγραμμά σου και να βλέπουν αν το output είναι σωστό. Οπότε ό,τι κουλαμάρα και να κάνεις στον κώδικα, αν είναι σωστή, είναι όλα εντάξει.

2. Τρέχεις Linux ή Mac; Αν ναι, αντί για την εντολή ./a.out που θα τρέξει το πρόγραμμά σου, τρέξε time ./a.out. Αν έχεις windows, η συμβουλή μου είναι να εγκαταστήσεις παράλληλα με τα windows και μια διανομή Linux ( πχ ubuntu που είναι κι αρκετά εύκολη στη χρήση ) γιατί και καλύτερα εργαλεία προγραμματισμού θα βρεις εκεί, και σε τέτοιο περιβάλλον θα γράφεις στην Τρίτη φάση.
Πάντως στο 99% των περιπτώσεων κι ίσως και παραπάνω, αρκεί ο εμπειρικός κανόνας 100.000.000 (10^8) πράξεις -> 1 δευτερόλεπτο. Οπότε δες στο περίπου πόσες εντολές εκτελεί το πρόγραμμά σου για το μέγιστο testcase ( δε μας πειράζει μια διαφορά τύπου επί 2 ή ακόμη κι επί 5, δηλαδή 10.000.000 και 50.000.000 δεν είναι καμμιά τρομακτική διαφορά, αν όμως κάνεις 10^12 πράξεις, τότε καλό θα ήταν να σκεφτείς μια πιο γρήγορη λύση ).

3. Τα αρχεία εισόδου εννοείται ότι τα θεωρείς πάντα σωστά!

Ελπίζω να απάντησα σ' ό,τι ήθελες, αν έχεις καμμιά άλλη απορία, μπουμπούνα την.
Λύσεις θεμάτων ΠΔΠ: 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/
Άβαταρ μέλους
xDev
Δημοσιεύσεις: 8
Εγγραφή: Παρ Νοέμ 29, 2013 9:51 pm
Τοποθεσία: Αθήνα

Re: Σχετικά με τον Διαγωνισμό

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

Ευχαριστώ για την άμεση απάντηση. :D
Έχω όμως και μία ακόμα απορία...
Έχω σχεδόν ετοιμάσει τον κώδικα για την πρώτη φάση του διαγωνισμού αλλά έχω κολλήσει σε μία λεπτομέρεια... :geek:
Για την πρώτη φάση του διαγωνισμού γράφω κώδικα σε Pascal. Στην Pascal (όπως και πιθανότατα και στις υπόλοιπες γλώσσες προγραμματισμού -εκτός από κάποιες εξαιρέσεις όπου μπορείς να δηλώσεις ως path το path του εκτελέσιμου αρχείου- ) χρειάζεται να δηλώσουμε το φυσικό μονοπάτι του αρχείου εισόδου/εξόδου. Στον ΠΔΠ ποιο πρέπει να ορίσω ως path για τα αρχεία αυτά; :?:
Εικόνα
pman
Δημοσιεύσεις: 419
Εγγραφή: Τρί Φεβ 10, 2009 9:49 pm

Re: Σχετικά με τον Διαγωνισμό

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

xDev έγραψε: χρειάζεται να δηλώσουμε το φυσικό μονοπάτι του αρχείου εισόδου/εξόδου.
Νομίζω εννοείς το σχετικό μονοπάτι. Σε κάθε περίπτωση, τα αρχεία ελέγχου (εισόδου/εξόδου) βρίσκονται στον ίδιο φάκελο, στον οποίο θα τρέξει το εκτελέσιμο που θα παραχθεί από τον κωδικά σου. Ρίξε μία ματιά εδώ http://hellenico.gr/index.php?page=theory&id=13, έχει οδηγίες σχετικά με τις υποβολές και ένα παράδειγμα σε Pascal.
Άβαταρ μέλους
xDev
Δημοσιεύσεις: 8
Εγγραφή: Παρ Νοέμ 29, 2013 9:51 pm
Τοποθεσία: Αθήνα

Re: Σχετικά με τον Διαγωνισμό

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

Α οκ :D
Να ρωτήσω και κάτι ακόμα...
Μόλις έφτιαξα partition στον δίσκο μου και εγκατέστησα ubuntu 12.04 lts.
Πώς μπορώ να εκελέσω τον κώδικά μου (.pas) και να δω τον χρόνο εκτέλεσής του;
Εικόνα
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Re: Σχετικά με τον Διαγωνισμό

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

Άντε, καλορίζικο!

Για να τρέξεις pascal πρέπει να εγκαταστήσεις τον compiler της Pascal.
Άνοιξε το terminal ( είτε κανονικά με διπλό κλικ στο εικονίδιο είτε Alt+Ctrl+T ) και γράψε :
sudo apt-get install fp-compiler-2.6.2
Αφού βάλεις τον κωδικό και πατήσεις μερικά yes θα έχεις τον compiler.

Τώρα για να μετακινείσαι στους φακέλους και να πας εκεί που είναι το αρχείο σου υπάρχει :
η εντολή ls που σου τυπώνει τα περιεχόμενα του παρόντος φακέλου.
η εντολή cd folder_name που σε πηγαίνει στον φάκελο-παιδί του φακέλου που βρίσκεσαι με όνομα folder_name.
η εντολή cd .. που σε πηγαίνει στον πατέρα-φάκελο.

Πηγαίνοντας λοιπόν στο φάκελο που είναι το αρχείο σου, πατάς
fpc my_file.pas
και μεταγλωττίζεται.
Μετά πατώντας
./my_file
θα τρέξει το πρόγραμμά σου.

Μπορείς βέβαια να πατήσεις
time ./my_file
κι έτσι να πάρεις και πληροφορίες για το πόσο χρόνο έκανε το πρόγραμμά σου.

ΌΜΩΣ! Η συμβουλή είναι να μάθεις C και στην πορεία λίγες απ' τις συναρτήσεις της C++ ( αν μάθεις C, το πέρασμα στην C++ ( όσον αφορά στον διαγωνισμό πάντα ) μπορεί να γίνει εύκολα μαθαίνοντας μόνο από αυτό το link http://www.softlab.ntua.gr/~nickie/tmp/camp/ αυτά που βρίσκονται στο "Δομές δεδομένων και STL" ), και να παρατήσεις την Pascal.
Το γιατί αναφέρεται και στο link που είπα παραπάνω και σε αρκετά σημεία μέσα στο forum.

Ελπίζω να σε βοήθησα, και καλή επιτυχία με τον διαγωνισμό.
Λύσεις θεμάτων ΠΔΠ: 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/
Άβαταρ μέλους
xDev
Δημοσιεύσεις: 8
Εγγραφή: Παρ Νοέμ 29, 2013 9:51 pm
Τοποθεσία: Αθήνα

Re: Σχετικά με τον Διαγωνισμό

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

Ευχαριστώ πολύ για την βοήθεια :D
Όσο για την συμβουλή σου το έχω υπόψη μου και στην Β' Φάση του ΠΔΠ (αν περάσω την Α' :roll: ) θα δώσω σε C++ (θα την μάθω μέσα στα Χριστούγεννα :lol: )
Εικόνα
Άβαταρ μέλους
xDev
Δημοσιεύσεις: 8
Εγγραφή: Παρ Νοέμ 29, 2013 9:51 pm
Τοποθεσία: Αθήνα

Re: Σχετικά με τον Διαγωνισμό

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

Θα ήθελα να ρωτήσω κάτι ακόμα...
Έχω γράψει τον κώδικα για την πρώτη φάση του διαγωνισμού και τον δοκίμασα με τα παραδείγματα που υπάρχουν στο pdf με το πρόβλημα. Όλα οκ.
Ο χρόνος εκτέλεσης για τα αρχεία αυτά ήταν 0m0,002s.
Τα αρχεία όμως εισόδου αυτά είναι πολύ μικρά. Πως θα είμαι σίγουρος ότι ο κώδικας μου θα είναι εντός των περιορισμών για τιμές Ν=100000 και Μ=10000000 ;
Και κάτι άλλο...
Όπως υπάρχει η time ./my_file για τον χρόνο εκτέλεσης υπάρχει κάποια εντολή για την εύρεση της μνήμης που χρησιμοποιεί το πρόγραμμα;
Ευχαριστώ.
Εικόνα
pman
Δημοσιεύσεις: 419
Εγγραφή: Τρί Φεβ 10, 2009 9:49 pm

Re: Σχετικά με τον Διαγωνισμό

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

xDev έγραψε:Θα ήθελα να ρωτήσω κάτι ακόμα...
Έχω γράψει τον κώδικα για την πρώτη φάση του διαγωνισμού και τον δοκίμασα με τα παραδείγματα που υπάρχουν στο pdf με το πρόβλημα. Όλα οκ.
Ο χρόνος εκτέλεσης για τα αρχεία αυτά ήταν 0m0,002s.
Τα αρχεία όμως εισόδου αυτά είναι πολύ μικρά. Πως θα είμαι σίγουρος ότι ο κώδικας μου θα είναι εντός των περιορισμών για τιμές Ν=100000 και Μ=10000000 ;
Απαντήθηκε ήδη το ερωτημά σου
Spoiler: show
Κηπουρίδης έγραψε:Πάντως στο 99% των περιπτώσεων κι ίσως και παραπάνω, αρκεί ο εμπειρικός κανόνας 100.000.000 (10^8) πράξεις -> 1 δευτερόλεπτο. Οπότε δες στο περίπου πόσες εντολές εκτελεί το πρόγραμμά σου για το μέγιστο testcase ( δε μας πειράζει μια διαφορά τύπου επί 2 ή ακόμη κι επί 5, δηλαδή 10.000.000 και 50.000.000 δεν είναι καμμιά τρομακτική διαφορά, αν όμως κάνεις 10^12 πράξεις, τότε καλό θα ήταν να σκεφτείς μια πιο γρήγορη λύση ).
xDev έγραψε: Και κάτι άλλο...
Όπως υπάρχει η time ./my_file για τον χρόνο εκτέλεσης υπάρχει κάποια εντολή για την εύρεση της μνήμης που χρησιμοποιεί το πρόγραμμα;
Ευχαριστώ.
Για να δεις την μνήμη που καταναλώνει μία διεργασία(=πρόγραμμα) μπορείς να τρέξεις την top
http://linux.about.com/od/commands/l/blcmdl1_top.htm ή να ανοίξεις το αρχείο /proc/pid/status, όπου pid είναι ο αριθμός της διεργασίας.
Άβαταρ μέλους
xDev
Δημοσιεύσεις: 8
Εγγραφή: Παρ Νοέμ 29, 2013 9:51 pm
Τοποθεσία: Αθήνα

Re: Σχετικά με τον Διαγωνισμό

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

Α οκ εντάξει...
Υπέβαλα το πρόγραμμά μου στο Hellenico.
Στην αξιολόγιση για το πρόβλημα domes δίνει δύο testcases και λέει και για τα δύο Σωστή Απάντηση 100%  :D
Αυτό συμαίνει πως θα περάσω στην Β' Φάση; :o
Εικόνα
Άβαταρ μέλους
Κηπουρίδης
Δημοσιεύσεις: 397
Εγγραφή: Παρ Φεβ 05, 2010 5:05 pm

Re: Σχετικά με τον Διαγωνισμό

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

Σημαίνει ότι πέρασες τα δύο ενδεικτικά, αυτά που δίνονται έτσι κι αλλιώς.

Μετά το πέρας των υποβολών το πρόγραμμά σου θα εξεταστεί σε πολλά ακόμα testcase κι αν περνάει κι εκείνα, τότε περνάς στη Β Φάση.
Δοκίμασε το ενδεικτικό testcase που ανέβασε ο konstantinaras, για να δεις αν βγάζεις κι εσύ την ίδια απάντηση.

Καλή επιτυχία.
Λύσεις θεμάτων ΠΔΠ: 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/
Άβαταρ μέλους
xDev
Δημοσιεύσεις: 8
Εγγραφή: Παρ Νοέμ 29, 2013 9:51 pm
Τοποθεσία: Αθήνα

Re: Σχετικά με τον Διαγωνισμό

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

Εσύ το έχεις κατεβάσει το testcase;
Γιατί εγώ δεν μπορώ.
Αν το έχεις μπορείς να μου το στείλεις σε email;
klifeboy@live.com
Εικόνα
Απάντηση