COCI-08 (2008) - Γύρος #5 - 2 (Jabuka)

View as PDF

Submit solution

Points: 15 (partial)
Time limit: 1.0s
Memory limit: 32M

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

Ο Mirko έχει R κόκκινα και G πράσινα μήλα για να μοιραστεί με μερικούς από τους φίλους του, έτσι ώστε όλοι να λάβουν τον ίδιο αριθμό κόκκινων μήλων και τον ίδιο αριθμό πράσινων μήλων. Στον Mirko δεν αρέσουν τα μήλα, οπότε δεν θέλει να μείνει με κανένα μήλο μετά.
Για παράδειγμα, αν ο Mirko έχει 4 κόκκινα και 8 πράσινα μήλα, μπορεί να τα χωρίσει με τρεις τρόπους:

  1. Ένας φίλος παίρνει και τα 4 κόκκινα και τα 8 πράσινα μήλα.
  2. Δύο φίλοι λαμβάνουν ο καθένας 2 κόκκινα μήλα και 4 πράσινα μήλα.
  3. Τέσσερις φίλοι λαμβάνουν από 1 κόκκινο και 2 πράσινα μήλα ο καθένας.

Γράψτε ένα πρόγραμμα που θα τυπώνει όλους τους τρόπους με τους οποίους ο Mirko μπορεί να μοιράσει τα μήλα του. Ας υποθέσουμε ότι ο Mirko έχει άπειρους φίλους στους οποίους μπορεί να δώσει μήλα.

Είσοδος

Η πρώτη γραμμή περιέχει δύο θετικούς ακέραιους R και G που χωρίζονται με ένα κενό (1 \le R,\; G \le 1\,000\,000\,000), τους αριθμούς των κόκκινων και πράσινων μήλων.

Έξοδος

Για κάθε πιθανή κατανομή, τυπώστε τρεις ακέραιους N, X και Y σε μία γραμμή. Ο αριθμός N είναι ο αριθμός φίλων που θα λάβουν μήλα. Οι αριθμοί X και Y λένε πόσα κόκκινα και πράσινα μήλα θα λάβει καθένας από αυτούς.
Κάθε κατανομή πρέπει να τυπώνεται ακριβώς μία φορά. Μπορείτε να τυπώσετε τις κατανομές με οποιαδήποτε σειρά.

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

input

4 8

output

1 4 8
2 2 4
4 1 2

input

15 12

output

3 5 4
1 15 12

input

42 105

output

1 42 105
3 14 35
7 6 15
21 2 5

Comments

There are no comments at the moment.