COCI-16 (2016) - Γύρος #7 - 5 (Paralelogrami)

View as PDF

Submit solution

Points: 45 (partial)
Time limit: 1.0s
Memory limit: 64M

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

Πρόσφατα, εμφανίστηκε ένα νέο δημοφιλές παιχνίδι στον υπολογιστή, που ονομάζεται "Parallelograms". Στην αρχή του παιχνιδιού, ο υπολογιστής σχεδιάζει N σημεία στην οθόνη, των οποίων οι συντεταγμένες είναι ακέραιοι αριθμοί μεταξύ του -10 και του 10 (κλειστό διάστημα).

Η μόνη επιτρεπόμενη κίνηση στο παιχνίδι είναι να λάβετε 3 μη συγγραμμικά σημεία A, B, C και, αντί για το σημείο C, να σχεδιάσετε το σημείο D έτσι ώστε το ACBD να είναι ένα παραλληλόγραμμο του οποίου η μία διαγώνιος είναι το τμήμα AB. Παρατηρήστε ότι τέτοιο σημείο D υπάρχει πάντα και είναι μοναδικό.
Στην αρχή, όλοι τα σημεία είναι διαφορετικά, αλλά κατά τη διάρκεια του παιχνιδιού επιτρέπεται δύο ή περισσότερα σημεία να έχουν ίδιες συντεταγμένες. Επιπλέον, όλες οι συντεταγμένες των νέων σημείων πρέπει να είναι το πολύ 10^9 σε απόλυτη τιμή.

Ο στόχος του παιχνιδιού είναι, χρησιμοποιώντας μια σειρά από κινήσεις, να φέρουμε όλα τα σημεία στο πρώτο τεταρτημόριο.
Πιο συγκεκριμένα, στο τέλος του παιχνιδιού, όλα τα σημεία πρέπει να έχουν μη αρνητικές συντεταγμένες.
Βρείτε μια σειρά κινήσεων, που αποτελείται από το πολύ 2\,500 κινήσεις, που φέρνει όλα τα σημεία στο πρώτο τεταρτημόριο ή προσδιορίστε ότι δεν υπάρχει τέτοια σειρά κινήσεων.

Είσοδος

Η πρώτη γραμμή εισόδου περιέχει τον αριθμό N\;(3 \le N \le 300). Η i-οστή από τις ακόλουθες N γραμμές περιέχει συντεταγμένες του i-οστού σημείου X_i, Y_i\;(-10 \le X_i, Y_i \le 10).
Στην αρχή, κανένα σημείο δεν έχει ίδιες συντεταγμένες.

Έξοδος

Εάν η λύση δεν υπάρχει, η πρώτη και μοναδική γραμμή εξόδου πρέπει να περιέχει -1.
Διαφορετικά, η πρώτη γραμμή εξόδου πρέπει να περιέχει τον αριθμό των κινήσεων M\;(0 \le M \le 2\,500).
Κάθε μία από τις ακόλουθες M γραμμές πρέπει να περιέχει 3 διαφορετικούς αριθμούς A, B, C (1 \le A, B, C \le N), που δηλώνουν τους δείκτες των σημείων που συμμετέχουν στην κίνηση. Το σημείο με δείκτη C αλλάζει σύμφωνα με τον περιγραφόμενο κανόνα και τα σημεία με δείκτες A και B δεν αλλάζουν.

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

input

3
0 0
4 0
3 -1

output

1
1 2 3

input

4
5 0
0 5
-2 -2
-3 2

output

2
1 2 3
1 2 4

input

3
-1 -1
-2 -2
-3 -3

output

-1

Comments

There are no comments at the moment.