22ος ΠΔΠ Γ’ Φάση
Lines man (lines_man)
[25 Μονάδες]
Το ποδόσφαιρο από την ανακάλυψή του στο Πανεπιστήμιο του Cambridge, έγινε το πιο δημοφιλές αλλά και το πιο εύκολα παιζόμενο άθλημα. Ένας σχετικά επίπεδος τόπος και μια μπάλα αρκούν. Σύμφωνα με τους κανόνες του, ο διαιτητής κινείται μέσα στο γήπεδο και οι επόπτες γραμμών κατά μήκος των πλευρικών γραμμών, στο μισό γηπέδου έκαστος. Aν το γήπεδο ποδοσφαίρου έχει μήκος A, οι δύο επόπτες γραμμών ξεκινούν από το κέντρο του γηπέδου (A/2). Mέσα στο γήπεδο η μπάλα κινείται σε διάφορα σημεία. Οι επόπτες πρέπει να παρακολουθούν τις φάσεις, κινούμενοι μόνο κατά μήκος των πλευρικών γραμμών από το 0 έως A/2 και από A/2 έως A αντίστοιχα.
Πρόβλημα
Να αναπτύξετε ένα πρόγραμμα σε μια από τις γλώσσες του ΙΟΙ το οποίο: Aφού διαβάσει το μήκος του γηπέδου, τον αριθμό των φάσεων και τη θέση (μήκος) που συντελείται κάθε φάση, θα υπολογίζει τα μέτρα που διάνυσαν οι επόπτες γραμμών κατά τη διάρκεια ενός αγώνα.
Παρατήρηση: Οι επόπτες ξεκινούν από το κέντρο αλλά δεν επιστρέφουν υποχρεωτικά σε αυτό στο τέλος του παιχνιδιού.
Aρχεία εισόδου
Τα αρχεία εισόδου με όνομα lines_man.in είναι αρχεία κειμένου με την εξής δομή: Στην πρώτη γραμμή έχουν έναν άρτιο ακέραιο αριθμό A (10≤A≤1.000): το μήκος του γηπέδου. Στη δεύτερη γραμμή έχουν έναν ακέραιο αριθμό M (10≤M≤100.000): το πλήθος των φάσεων. Οι επόμενες M γραμμές περιέχουν από ένα ακέραιο αριθμό Y (0≤Y≤A): το μήκος του γηπέδου επί του οποίου εξελίσσεται η αντίστοιχη φάση.
Aρχεία εξόδου
Τα αρχεία εξόδου με το όνομα lines_man.out είναι αρχεία κειμένου με την εξής δομή. Έχουν μία γραμμή με ακριβώς δύο αριθμούς, L1 και L2 (0≤L1, L2≤10.000.000): τη συνολική απόσταση που διέτρεξε κάθε επόπτης γραμμών. Ο πρώτος κινείται από 0 έως A/2 και ο δεύτερος κινείται από A/2 έως A.
Παράδειγμα αρχείων εισόδου – εξόδου
lines_man.in | lines_man.out |
---|---|
100 10 49 30 25 0 50 55 40 30 20 0 |
150 10 |
Εξήγηση παραδείγματος: Το μήκος του γηπέδου είναι 100, άρα ο πρώτος επόπτης κινείται μεταξύ 0 και 50 και ο δεύτερος μεταξύ 50 και 100 (βλ. σχήμα). Γίνονται συνολικά 10 φάσεις. Και οι δύο επόπτες ξεκινούν από τη θέση 50. Στις πρώτες τέσσερις φάσεις (49, 30, 25 και 0) ο πρώτος επόπτης τρέχει μέχρι τη θέση 0 διανύοντας συνολικά 50 μέτρα, ενώ ο δεύτερος επόπτης παραμένει ακίνητος στη θέση 50. Στην πέμπτη φάση (50), ο πρώτος επόπτης επιστρέφει στη θέση 50 διανύοντας άλλα 50 μέτρα και ο δεύτερος παραμένει ακίνητος στη θέση 50. Στην έκτη φάση (55), ο δεύτερος επόπτης τρέχει μέχρι τη θέση 55 διανύοντας 5 μέτρα, ενώ ο πρώτος παραμένει ακίνητος στη θέση 50. Στην έβδομη φάση (40), ο δεύτερος επόπτης επιστρέφει στη θέση 50 διανύοντας άλλα 5 μέτρα και ο πρώτος επόπτης τρέχει μέχρι τη θέση 40 διανύοντας 10 μέτρα. Στις τελευταίες τρεις φάσεις (30, 20 και 0), ο πρώτος επόπτης τρέχει μέχρι τη θέση 0 διανύοντας συνολικά 40 μέτρα ενώ ο δεύτερος επόπτης παραμένει ακίνητος στη θέση 50. Οι συνολικές αποστάσεις που διανύθηκαν από τους δύο επόπτες είναι: L1=50+50+10+40=150 και L2=5+5=10.
Mορφοποίηση: Στην έξοδο, όλες οι γραμμές τερματίζουν με ένα χαρακτήρα newline.
Mέγιστος χρόνος εκτέλεσης: 1 sec.
Mέγιστη διαθέσιμη μνήμη: 16 MB.
Computer Science teacher