COCI-19 (2019) - Γύρος #4 - 2 (Spiderman)

View as PDF

Submit solution

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

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

coci19d2-figure.svg

Στον μικρό Ivan αρέσει να παίζει Yamb και να διαβάζει κόμικς με υπερήρωες της Marvel. O αγαπημένος υπερήρωας είναι ο spider-man, ένας έφηβος που ονομάζεται Peter Parker, ο οποίος πήρε τις υπερδυνάμεις του μέσω ενός δαγκώματος ραδιενεργούς αράχνης. Ο Ivan φαντάζεται ότι μια μέρα θα μπορέσει να πηδήξει από έναν ουρανοξύστη σε άλλο, ακριβώς όπως κάνει ο spider-man στα κόμικ. Κατά τη διάρκεια μιας τέτοιας φαντασίας, αποκοιμήθηκε.

Στο όνειρό του δεν ονομαζόταν πλέον Ivan, το όνομά του ήταν Peter Parkour και... το μαντέψατε, μπόρεσε να χρησιμοποιήσει τις δεξιότητές του στο parkour1 για να πηδήξει ανάμεσα σε ουρανοξύστες. Γρήγορα κατάλαβε ότι υπάρχουν ακριβώς N ουρανοξύστες στο περιβάλλον του και κατά κάποιο τρόπο ήξερε ότι ο i-οστός από αυτούς τους ουρανοξύστες έχει h_i μέτρα ύψος. Ξέρει ότι είναι σε θέση να πηδήξει από τον i-οστό ουρανοξύστη στον j-οστό ουρανοξύστη αν το υπόλοιπο κατά τη διαίρεση του h_i με το h_j είναι ίσο με το K. Βοηθήστε τον Ivan να καθορίσει, για κάθε ουρανοξύστη, τον αριθμό των άλλων ουρανοξυστών στους οποίους μπορεί να πηδήξει.

Είσοδος

Η πρώτη γραμμή περιέχει δύο ακέραιους αριθμούς, τους N\;(1 \le N \; 300\,000) και K\;(0 \le K < 10^6).

Η επόμενη γραμμή περιέχει N ακέραιους h_i\;(1 \le h_i \le 10^6).

Έξοδος

Σε μία μόνο γραμμή θα πρέπει να τυπώσετε N ακέραιους αριθμούς διαχωρισμένους με διάστημα έτσι ώστε ο i-οστός αυτών των ακεραίων να αντιπροσωπεύει τον αριθμό των διαφορετικών ουρανοξυστών στους οποίους μπορεί να πηδήξει ο Peter Parkour αν πηδήξει από τον i-οστό ουρανοξύστη.

Βαθμολογία

Σε δοκιμαστικές περιπτώσεις συνολικής αξίας 14 πόντων, θα ισχύει 1 \le N \le 2000.
Σε δοκιμαστικές περιπτώσεις αξίας επιπλέον 14 βαθμών, θα υπάρχουν το πολύ 2000 ουρανοξύστες διαφορετικού ύψους.
Σε δοκιμαστικές περιπτώσεις αξίας επιπλέον 14 πόντων, θα ισχύει K = 0.

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

input

2 1
5 5

output

0 0

input

6 3
4 3 12 6 8 2

output

0 4 0 0 0 0

input

5 1
1 3 5 7 2

output

4 1 1 2 0
Επεξήγηση του 3ου παραδείγματος:

Από τον πρώτο ουρανοξύστη ύψους 1 Peter μπορεί να πηδήξει σε οποιονδήποτε άλλο ουρανοξύστη.
Από τον δεύτερο ουρανοξύστη ύψους 3, ο Peter μπορεί να πηδήξει μόνο σε έναν ουρανοξύστη ύψους 2.
Από τον τρίτο ουρανοξύστη ύψους 5, ο Peter μπορεί να πηδήξει μόνο σε έναν ουρανοξύστη ύψους 2.
Από τον τέταρτο ουρανοξύστη ύψους 7, ο Peter μπορεί να πηδήξει σε ουρανοξύστες των υψών 2 και 3.
Από τον πέμπτο ουρανοξύστη ύψους 2, ο Peter δεν μπορεί να πηδήξει σε κανέναν άλλο ουρανοξύστη.


Η διαδικτυακή μόδα του 2004. Ήταν στις ταινίες του James Bond, ο στόχος είναι να φτάσουμε από το σημείο Α στο σημείο Β όσο πιο δημιουργικά γίνεται.


Comments

There are no comments at the moment.