COCI-25 (2025) - Γύρος #1 - 2 (Krugomet)

View as PDF

Submit solution

Points: 30 (partial)
Time limit: 1.0s
Memory limit: 512M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python
Krugomet

n μαθητές συγκεντρώθηκαν στην αυλή του σχολείου μια ηλιόλουστη μέρα και στάθηκαν σε έναν μεγάλο κύκλο. Κάθε άτομο είχε το δικό του κουτί με μπάλες (το άτομο i έχει a_i μπάλες), καθώς και ένα άτομο που του αρέσει (ίσως και o εαυτόs του), το οποίο συμβολίζεται με s_i​.

Αποφάσισαν να παίξουν το αγαπημένο τους παιχνίδι, το krugomet. Το krugomet αποτελείται από k γύρους. Σε κάθε γύρο, όλοι οι συμμετέχοντες στο παιχνίδι πετούν ταυτόχρονα όλες τις μπάλες τους προς το άτομο που τους αρέσει (s_i). Οι μαθητές είναι επιδέξιοι και ευκίνητοι, οπότε πιάνουν πάντα όλες τις μπάλες που τους πετούν σε έναν γύρο. Αφού πιαστούν οι μπάλες, όλοι ετοιμάζονται για τον επόμενο γύρο και η όλη διαδικασία επαναλαμβάνεται.

Ο δάσκαλος αποκοιμήθηκε στο παγκάκι και άφησε τους μαθητές να παίξουν μόνοι τους. Όταν ξύπνησε, οι μαθητές του ζήτησαν να τους πει ποιος κέρδισε, δηλαδή να απαντήσει σε 2 ερωτήσεις:

  • Πόσες μπάλες έχει ο μαθητής με τις περισσότερες μπάλες μετά από k γύρους παιχνιδιού;

  • Ποιος συγκέντρωσε τις περισσότερες μπάλες μετά από k γύρους παιχνιδιού;

Ο δάσκαλος γνωρίζει πόσοι μαθητές έπαιξαν krugomet (n), τη σειρά των "προτιμήσεων" (s_i), τον αρχικό αριθμό μπαλών για κάθε μαθητή (a_i), και πόσοι γύροι παιχνιδιού (k) παίχτηκαν. Δυστυχώς, ο δάσκαλος δεν έχει χρόνο να μετρήσει πόσες μπάλες έχει το κάθε άτομο, οπότε αφήνει αυτό το έργο σε εσάς.

Βοηθήστε τον και προσδιορίστε τη λίστα των μαθητών που συγκέντρωσαν τις περισσότερες μπάλες. Σε περίπτωση που υπάρχουν περισσότερα από ένα άτομα με τον μέγιστο αριθμό μπαλών, εκτυπώστε τους δείκτες τους (indices) σε σειρά από τον μικρότερο προς τον μεγαλύτερο.

Είσοδος

Στην πρώτη γραμμή βρίσκονται δύο φυσικοί αριθμοί n και k\;(1 \le n \le 10^5,\; 1 \le k \le 10^9).

Στη δεύτερη γραμμή υπάρχουν n φυσικοί αριθμοί a_i\;(1 \le a_i \le 1000).

Στην τρίτη γραμμή υπάρχουν n φυσικοί αριθμοί s_i\;(1 \le s_i \le n).

Έξοδος

Στην πρώτη γραμμή, εκτυπώστε έναν μόνο αριθμό - τον αριθμό των μπαλών που συγκέντρωσε ο μαθητής με τις περισσότερες μπάλες.

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

Βαθμολογία
 Υποπρόβλημα    Βαθμοί   Περιορισμοί
1 14 n,k \le 1000
2 26 Η ακολουθία s είναι μια μετάθεση , s_i \neq s_j (1 \le i < j \le n).
3 30 Κανένας επιπλέον περιορισμός.

Η σωστή εκτύπωση της 1ης γραμμής κερδίζει το 50% των βαθμών για το παράδειγμα ελέγχου (test example). Το υπόλοιπο 50% των βαθμών για το παράδειγμα ελέγχου κερδίζεται με τη σωστή εκτύπωση της 2ης γραμμής.

Παραδείγματα

input

2 1
5 6
2 1

output

6
1
Επεξήγηση του πρώτου παραδείγματος:

Στον μοναδικό γύρο του krugomet, τα άτομα με τις ετικέτες 1 και 2 πέταξαν όλες τις μπάλες τους ο ένας στον άλλον και «αντάλλαξαν» τον αριθμό των μπαλών που είχε ο καθένας. Μετά τον πρώτο γύρο, το άτομο με την ετικέτα 1 είχε τις περισσότερες μπάλες, κρατώντας συνολικά 6 μπάλες.


input

4 2
5 5 5 5
1 2 1 1

output

15
1

input

4 10000000
1 2 3 4
2 1 4 3

output

4
4

Comments

There are no comments at the moment.