Δίνονται οι πίνακες Σ1(Κ,Κ) και Π1(Κ,Κ) που περιέχουν τα αποτελέσματα των αγώνων ομίλου του EuroBasket. Ο πίνακας Σ1 περιέχει τα αποτελέσματα των αγώνων (Ν (νίκη) ή Η (ήττα)), ενώ ο πίνακας Π1 τη διαφορά πόντων για κάθε αγώνα. Να γραφεί πρόγραμμα το οποίο θα βρίσκει και θα εκτυπώνει την τελική βαθμολογία του ομίλου. Σε περίπτωση ισοβαθμίας προηγείται η ομάδα που έχει την καλύτερη διαφορά πόντων από τις ισόβαθμές της.

Παρατήρηση: Τα στοιχεία της κύριας διαγωνίου δεν περιέχουν καμία πληροφορία (καμία ομάδα δεν παίζει με τον εαυτό της!). Ο πίνακας περιέχει στοιχεία μόνο κάτω ή πάνω από τη διαγώνιό του, είναι δηλαδή τριγωνικός (κάθε ομάδα παίζει μόνο μία φορά με κάθε αντίπαλο).

ΛΥΣΗ:

ΠΡΟΓΡΑΜΜΑ Πρωτάθλημα 
 ΜΕΤΑΒΛΗΤΕΣ 
 ΧΑΡΑΚΤΗΡΕΣ : Σ1[5, 5], ΟΜΑΔΑ[5], βοηθητική1 
 ! Έστω 5 ομάδες στον όμιλο 
 ΑΚΕΡΑΙΕΣ : Π1[5, 5], ΒΑΘΜΟΙ[5], ΔΙΑΦΟΡΑ[5], i, j, βοηθητική2 
 ΑΡΧΗ  
!Αρχικοποίηση Πινάκων
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 
     ΒΑΘΜΟΙ[i]<--0 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 
     ΔΙΑΦΟΡΑ[i]<--0 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ  

!Εισαγωγή στοιχείων ΟΜΑΔΑ, Π1, Σ1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 
     ΓΡΑΨΕ 'ΔΩΣΕ ΟΝΟΜΑ ΟΜΑΔΑΣ ', i
     ΔΙΑΒΑΣΕ ΟΜΑΔΑ[i] 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
 ΓΡΑΨΕ 'Δώστε Nίκη (Ν) /Ήττα (H)' 
 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 
     ΓΙΑ j ΑΠΟ i+1 ΜΕΧΡΙ 5  ! Άνω τριγωνικός 
         ΓΡΑΨΕ 'Ομάδα ', ΟΜΑΔΑ [i], 'εναντίον ομάδας ', ΟΜΑΔΑ[j] 
         ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 
              ΔΙΑΒΑΣΕ Σ1[i, j]
         ΜΕΧΡΙΣ_ΟΤΟΥ (Σ1[i, j] = 'Ν') Η (Σ1[i, j] = 'Η') 
         ΓΡΑΨΕ 'Διαφορά πόντων για τον αγώνα αυτό' 
         ΔΙΑΒΑΣΕ Π1[i, j] 
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Οι ομάδες, που συμμετέχουν, σε ένα αγώνα, βαθμολογούνται με 
!    α. δύο βαθμούς (2), στη περίπτωση νίκης
!    β. ένα βαθμό (1), στη περίπτωση ήττας.
! H διαφορά πόντων προσμετράται μόνο στον νικητή.

! α' τρόπος, αποτελεσματικότερος αλλά δυσκολότερος (βλ. τέλος) 
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 4        ! διόρθωση στο άνω όριο, 5 (14.3.17)
    ΓΙΑ j ΑΠΟ i+1 ΜΕΧΡΙ 5 
        ΑΝ (Σ1[i, j] = 'N') ΤΟΤΕ 
            ΒΑΘΜΟΙ[i] <-- ΒΑΘΜΟΙ[i] + 2 
            ΒΑΘΜΟΙ[j] <-- ΒΑΘΜΟΙ[j] + 1 
            ΔΙΑΦΟΡΑ[i] <-- ΔΙΑΦΟΡΑ[i] + Π1[i, j] 
        ΑΛΛΙΩΣ 
            ΒΑΘΜΟΙ[i] <-- ΒΑΘΜΟΙ[i] + 1 
            ΒΑΘΜΟΙ[j] <-- ΒΑΘΜΟΙ[j] + 2 
            ΔΙΑΦΟΡΑ[j] <-- ΔΙΑΦΟΡΑ[j] + Π1[i, j] 
         ΤΕΛΟΣ_ΑΝ 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! Ταξινόμηση ευθείας ανταλλαγής παράλληλων πινάκων 
 ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ 5 
     ΓΙΑ j ΑΠΟ 5 ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1 
         ΑΝ (ΒΑΘΜΟΙ[j-1] < ΒΑΘΜΟΙ[j]) ΤΟΤΕ 
 ! φθίνουσα ταξινόμηση ως προς τη βαθμολογία 
   ! αντιμετάθεση πίνακα βαθμολογίας 
             βοηθητική2 <-- ΒΑΘΜΟΙ[j-1] 
             ΒΑΘΜΟΙ[j-1] <-- ΒΑΘΜΟΙ[j] 
             ΒΑΘΜΟΙ[j] <-- βοηθητική2 
   ! ταυτόχρονη αντιμετάθεση πίνακα διαφορών 
             βοηθητική2 <-- ΔΙΑΦΟΡΑ[j-1] 
             ΔΙΑΦΟΡΑ[j-1] <-- ΔΙΑΦΟΡΑ[j] 
             ΔΙΑΦΟΡΑ[j] <-- βοηθητική2 
   ! ταυτόχρονη αντιμετάθεση πίνακα ονομάτων 
             βοηθητική1 <-- ΟΜΑΔΑ[j-1] 
             ΟΜΑΔΑ[j-1] <-- ΟΜΑΔΑ[j] 
             ΟΜΑΔΑ[j] <-- βοηθητική1 
         ΑΛΛΙΩΣ_ΑΝ (ΒΑΘΜΟΙ[j-1] = ΒΑΘΜΟΙ[j]) ΤΟΤΕ !σε περίπτωση ισοβαθμίας 
!φθίνουσα ταξινόμηση ως προς τη διαφορά πόντων 
   ! αντιμετάθεση πίνακα διαφορών
                ΑΝ (ΔΙΑΦΟΡΑ[j-1] < ΔΙΑΦΟΡΑ[j]) ΤΟΤΕ 
                    βοηθητική2 <-- ΔΙΑΦΟΡΑ[j-1] 
                    ΔΙΑΦΟΡΑ[j-1] <-- ΔΙΑΦΟΡΑ[j] 
                    ΔΙΑΦΟΡΑ[j] <-- βοηθητική2 
   !ταυτόχρονη αντιμετάθεση πίνακα ονομάτων 
                    βοηθητική1 <-- ΟΜΑΔΑ[j-1] 
                    ΟΜΑΔΑ[j-1] <-- ΟΜΑΔΑ[j] 
                    ΟΜΑΔΑ[j] <-- βοηθητική1 
                 ΤΕΛΟΣ_ΑΝ 
         ΤΕΛΟΣ_ΑΝ 
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
 ΓΡΑΨΕ 'ΤΕΛΙΚΗ ΚΑΤΑΤΑΞΗ:'
 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 
     ΓΡΑΨΕ ΟΜΑΔΑ[i], ' ΒΑΘΜΟΙ ', ΒΑΘΜΟΙ[i], 'ΔΙΑΦΟΡΑ ΠΟΝΤΩΝ ', ΔΙΑΦΟΡΑ[i] 
 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

! β' τρόπος, (απλούστερος) για τον υπολογισμό της βαθμολογίας
......
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5           
    ΓΙΑ j ΑΠΟ 5 ΜΕΧΡΙ 5 
        ΑΝ i > j ΤΟΤΕ 
           ΑΝ (Σ1[i, j] = 'N') ΤΟΤΕ 
               ΒΑΘΜΟΙ[i] <-- ΒΑΘΜΟΙ[i] + 2 
               ΒΑΘΜΟΙ[j] <-- ΒΑΘΜΟΙ[j] + 1 
               ΔΙΑΦΟΡΑ[i] <-- ΔΙΑΦΟΡΑ[i] + Π1[i, j] 
           ΑΛΛΙΩΣ 
               ΒΑΘΜΟΙ[i] <-- ΒΑΘΜΟΙ[i] + 1 
               ΒΑΘΜΟΙ[j] <-- ΒΑΘΜΟΙ[j] + 2 
               ΔΙΑΦΟΡΑ[j] <-- ΔΙΑΦΟΡΑ[j] + Π1[i, j] 
          ΤΕΛΟΣ_ΑΝ
        ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
.....