Σελίδα 14 από 15

Re: Hellenico

Δημοσιεύτηκε: Τρί Νοέμ 10, 2020 4:29 pm
από Κηπουρίδης
Ωπ, δοκίμασα τώρα κι εγώ, και είναι μόνιμα σε κατάσταση αναμονής. Και σε εσένα το ίδιο συμβαίνει; Θα προσπαθήσω να ενημερώσω.

Re: Hellenico

Δημοσιεύτηκε: Τρί Νοέμ 10, 2020 4:40 pm
από Marilenatsiop
Ναι! Ακριβώς! Κάνω υποβολή και ποτέ δεν παίρνω απάντηση....., από το απόγευμα του Σαββάτου γίνεται αυτό.... δοκίμασα και σε άλλα προβλήματα και πάλι το ίδιο....

Re: Hellenico

Δημοσιεύτηκε: Τρί Νοέμ 10, 2020 5:14 pm
από Κηπουρίδης
Παράνοια που απαντάτε από διαφορετικό λογαριασμό, χιχιχι.
Πρέπει να λύθηκε τώρα το πρόβλημα, καλή συνέχεια!

Re: Hellenico

Δημοσιεύτηκε: Τρί Νοέμ 10, 2020 5:32 pm
από Marilenatsiop
τώρα δουλεύει , ευχαριστώ

Re: Hellenico

Δημοσιεύτηκε: Τρί Νοέμ 10, 2020 5:40 pm
από Marilenatsiop
Κηπουρίδης έγραψε: Τρί Νοέμ 10, 2020 5:14 pm Παράνοια που απαντάτε από διαφορετικό λογαριασμό, χιχιχι.
στο ίδιο σπίτι, διαφορετικός χρήστης συνδεδεμένος σε κάθε ... τερματικό: λαπτοπ, ντεσκτοπ, κινητό.... :D :D :D

Re: Hellenico

Δημοσιεύτηκε: Τρί Νοέμ 10, 2020 10:08 pm
από bettypan
Η Μαριλένα «χάκαρε» τον λογαριασμό μου..... μπήκε από τον δικό μου...( μάλλον δεν κατάλαβε ότι ήμουν εγώ συνδεδεμένη ) και μετά συνέχισε από το δικό της.....
Συγγνώμη...!
( η Μπεττυ είμαι ;) )

Re: Hellenico

Δημοσιεύτηκε: Παρ Νοέμ 13, 2020 6:27 pm
από Marilenatsiop
χρειάζομαι βοήθεια στο πρόβλημα 3.1.2 (Ταξινόμηση σειράς δεδομένων με τρία κλειδιά)
ο κώδικάς μου περνάει 4/10 testcases...
καταμετρώ τις ανταλλαγες του 1-2 , 1-3 , 2-1 , 2-3 , 3-1 , 3-2 και μετά υπολογίζω το αθροισμα των ελάχιστων ανταλλαγών, όμως μάλλον υπολογίζω κάποια περισσότερες φορές από ότι έπρεπε .....
Spoiler: show

Κώδικας: Επιλογή όλων

#include <bits/stdc++.h>  
using namespace std;  
  
int main() {  
 freopen("sort3.in", "r", stdin);  
 freopen("sort3.out", "w", stdout);  
    int n;  
    cin>>n;  
    int starter[n];  
    for(int i=0; i<n; i++){  
        cin>>starter[i];  
    }  
    int count[4];  
    for(int i=0; i<4; i++){  
        count[i]=0;  
    }  
    for(int i=0; i<n; i++){  
        count[starter[i]]++;  
    }  
    int ant12=0, ant13=0, ant21=0, ant23=0, ant31=0, ant32=0;  
    for(int i=0; i<count[1]; i++){  
        if(starter[i]==2){  
            ant12++;  
        }else if(starter[i]==3){  
            ant13++;  
        }  
    }  
    for(int i=count[1]; i<count[1]+count[2]; i++){  
        if(starter[i]==1){  
            ant21++;  
        }else if(starter[i]==3){  
            ant23++;  
        }  
    }  
    for(int i=count[1]+count[2]; i<count[1]+count[2]+count[3]; i++){  
        if(starter[i]==1){  
            ant31++;  
        }else if(starter[i]==2){  
            ant32++;  
        }  
    }  
   int  ans=min(ant12,ant21)+min(ant13,ant31)+min(ant23,ant32);   
   cout<< ans;  
      
    return 0;  
}

Re: Hellenico

Δημοσιεύτηκε: Παρ Νοέμ 13, 2020 6:37 pm
από Κηπουρίδης
Συμφωνώ ότι η πληροφορία που υπολογίζεις (αυτές οι 6 μεταβλητές) αρκεί για να υπολογιστεί η τελική απάντηση. Θες να μας πεις όμως πώς χρησιμοποιείς αυτές τις έξι μεταβλητές (ανταλλαγές12, ανταλλαγές13, ανταλλαγές21, ανταλλαγές23, ανταλλαγές31, ανταλλαγές32) ώστε να υπολογίσεις την τελική απάντηση;
Ίσως έτσι μπορέσουμε να σου δώσουμε κάποιο αντιπαράδειγμα όπου η λογική σου να μην το λύνει.

Re: Hellenico

Δημοσιεύτηκε: Παρ Νοέμ 13, 2020 6:57 pm
από Marilenatsiop
οι ανταλλαγές 1-2, 2-1 είναι το ίδιο πραγμα, οπότε παίρνω την μικρότερη απο αυτές τις δυο.
οι ανταλλαγές 1-3 και 3-1 είναι επίσης το ίδιο, παίρνω την μικρότερη τιμή,
οι ανταλλαγές 2-3 και 3-2, επισης, παίρνω την μικρότερη και ,
τέλος, προσθέτω αυτές τις τρεις τιμές.

Re: Hellenico

Δημοσιεύτηκε: Παρ Νοέμ 13, 2020 7:15 pm
από Κηπουρίδης
Είσαι σίγουρη ότι οι μεταβλητές αυτές είναι ίσες; Στο παρακάτω παράδειγμα πχ δε μου φαίνονται ίσες.
1 2 3 3 3 1

Παρεμπιπτόντως η απάντησή θα έπρεπε να είναι 2 (ένα flip ο τελευταίος άσσος με το δυάρι, και κατόπιν άλλο ένα flip το δυάρι με το πρώτο τριάρι). Το πρόγραμμά σου δίνει 0.

Ελπίζω να σε βοηθήσει το αντιπαράδειγμα να σκεφτείς τι πάει στραβά στη λύση σου και πώς θα τη βελτιώσεις.

Σημείωση: Όλοι όσοι ξέρω, συμπεριλαμβανομένου εμού, συναντήσαμε δυσκολία στο εν λόγω πρόβλημα. Μοιάζει τόσο απλό που σε παρασύρει να κάνεις μια πολύ απλή λύση. Δεν είναι όμως τόοοσο απλό (χωρίς να σημαίνει ότι είναι και τραγικά δύσκολο, αλλά τη θέλει τη δουλίτσα του).

Καλή συνέχεια!

Re: Hellenico

Δημοσιεύτηκε: Κυρ Νοέμ 15, 2020 11:33 pm
από Marilenatsiop
οκ με το παράδειγμα που μου δώσατε το κατάλαβα , σε συνδυασμό με αυτό που μου είχε εξηγήσει στο παρελθόν και ο κύριος Μποκής...
η λύση μου θα είναι
Spoiler: show

Κώδικας: Επιλογή όλων

int  ans=min(ant12,ant21)+min(ant13,ant31)+min(ant23,ant32)+2*(max(ant13,ant31)-min(ant13,ant31)); 
είτε

Κώδικας: Επιλογή όλων

int  ans=min(ant12,ant21)+min(ant13,ant31)+min(ant23,ant32)+2*(max(ant12,ant21)-min(ant12,ant21));
είτε

Κώδικας: Επιλογή όλων

int  ans=min(ant12,ant21)+min(ant13,ant31)+min(ant23,ant32)+2*(max(ant23,ant32)-min(ant23,ant32));   

Re: Hellenico

Δημοσιεύτηκε: Σάβ Δεκ 26, 2020 2:30 pm
από Marilenatsiop
Χρόνια πολλά και καλές γιορτές...!!!
Κόλλησε πάλι το hellenico :roll:

Re: Hellenico

Δημοσιεύτηκε: Κυρ Δεκ 27, 2020 12:04 pm
από Κηπουρίδης
Ενημέρωσα και πρέπει αν λύθηκε, σε ευχαριστούμε για την ενημέρώση!

Re: Hellenico

Δημοσιεύτηκε: Κυρ Δεκ 27, 2020 11:23 pm
από Marilenatsiop
Ευχαριστώ πολύ!!! ευτυχώς πρόλαβα να κάνω, ένα πρόβλημα, υποβολή το πρωι...
ξανακόλλησε :P :roll: :lol:

Re: Hellenico

Δημοσιεύτηκε: Δευ Δεκ 28, 2020 5:13 am
από Κηπουρίδης
Fixed!

Re: Hellenico

Δημοσιεύτηκε: Παρ Ιαν 21, 2022 12:17 am
από Prod55
Καλησπέρα

Δεν ασχολούμαι πολύ καιρό με προγραμματισμό, κοίταξα λίγο το πρόβλημα με το bandwidth (με την λήψη αρχείων), έγραψα τον παρακάτω κώδικα αλλά περνάω μόνο το 1ο test case, στα υπόλοιπα λέει "λάθος απάντηση".

Κώδικας: Επιλογή όλων

 Program downloads;

var
eisodos: text;
velos: array[1..100] of longint;
remain: array[1..100] of longint;
N,i,A,B,R: integer;
C,j: real;

begin
assign(eisodos,'downloads.in');
reset(eisodos);
readln(eisodos,N);
for i:=1 to N do 
readln(eisodos,velos[i],remain[i]);
close(eisodos);
A:=0;
For i:=1 to N do
A:=A+velos[i]*remain[i];
B:=0;
For i:=1 to N do 
B:=B+velos[i];
C:=A/B;
i:=0;
while i<C do 
i:=i+1;
j:=i-C;
if j>0.5 then 
R:=i-1
else
R:=i;
assign(eisodos,'downloads.out');
rewrite(eisodos);
writeln(eisodos,R);
close(eisodos);
end.
  
Ουσιαστικά διαιρώ το άθροισμα όλων των αρχικών γινομένων ταχύτητα*υπολοιπόμενος χρόνος με το άθροισμα των ταχυτήτων(το οποίο μένει σταθερό). Έπειτα στρογυλλοποιώ στον πλησιέστερο ακέραιο. Το ότι το αποτέλεσμα προκύπτει όντως με την παραπάνω διαδικασία το έχω αποδείξει με επαγωγή στο Ν, οπότε υποθέτω πως το πρόβλημα είναι αλλού. Μπορεί κάποιος να μου υποδείξει το σφάλμα στον κώδικά μου?

Re: Hellenico

Δημοσιεύτηκε: Παρ Ιαν 21, 2022 11:53 am
από switch
Το κομμάτι

Κώδικας: Επιλογή όλων

i:=0;
while i<C do 
i:=i+1;
j:=i-C;
if j>0.5 then 
R:=i-1
else
R:=i;
το κάνεις για την στρογγυλοποίηση;
Αν κάνεις

Κώδικας: Επιλογή όλων

uses math;
μπορείς να χρησιμοποιήσεις τη συνάρτηση

Κώδικας: Επιλογή όλων

ceil(float x):integer;
ή

Κώδικας: Επιλογή όλων

writeln(C+0.5:9:0);
ή

Κώδικας: Επιλογή όλων

writeln(round(C+0.5));

υγ. Η pascal μου είναι λίγο ... rusty

Re: Hellenico

Δημοσιεύτηκε: Παρ Ιαν 21, 2022 12:28 pm
από Κηπουρίδης
Μια μικρή παρατήρηση κι από εμένα (ίσως βέβαια και να μην καταλαβαίνω τον κώδικα επειδή δεν ξέρω Pascal...).

Ας πούμε ότι C=3.6
Αν καταλαβαίνω καλά ανεβάζεις την μεταβλητή i όσο είναι μικρότερη από C. Δηλαδή παίρνει τις τιμές 1, 2, 3, 4. Μετά κάνεις j=i-C=0.6, δηλαδή το j είναι το κλασματικό μέρος.
Και μετά λες ότι αν το κλασματικό μέρος είναι > 0.5, πρέπει R=i-1, ενώ αλλιώς R=i. Στην περίπτωσή μας θα γινόταν R=3. Μήπως κάνεις ανάποδα τον έλεγχο, και θα έπρεπε να είναι if j < 0.5;

Επίσης πρόσεξε ότι όταν το j είναι ακριβώς 0 τότε δεν θέλουμε R=i-1...

Αφήνω πάνω σου τις λεπτομέρειες διόρθωσης του κώδικα, κι αν κολλήσεις μας ξαναρωτάς. Προτείνω να τον επιδιορθώσεις μόνος με βάση τις παρατηρήσεις μου. Και κατόπιν να χρησιμοποιείς πάντα τις έτοιμες συναρτήσεις που πρότεινε ο switch: Αφού φαίνεται ότι είσαι δυνατός στα μαθηματικά, κάνε τη ζωή σου εύκολη με τον κώδικα ώστε να μπορείς να επικεντρωθείς στο δημιουργικό κομμάτι κι όχι στις λεπτομέρειες!

Καλή σου συνέχεια.

Υ.Γ.: Συγχαρητήρια για την λύση σου, είναι όμορφο που πρόσεξες ότι ανεξάρτητα απ' τη σειρά, ο τελικός χρόνος θα είναι
συνολικό_μέγεθος / συνολική_ταχύτητα = άθροισμα(ταχύτητα(i)*χρόνος_που_απομένει(i))/ άθροισμα(ταχύτητα(i))

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

Re: Hellenico

Δημοσιεύτηκε: Παρ Ιαν 21, 2022 4:02 pm
από Prod55
Κηπουρίδης έγραψε: Παρ Ιαν 21, 2022 12:28 pm Μια μικρή παρατήρηση κι από εμένα (ίσως βέβαια και να μην καταλαβαίνω τον κώδικα επειδή δεν ξέρω Pascal...).

Ας πούμε ότι C=3.6
Αν καταλαβαίνω καλά ανεβάζεις την μεταβλητή i όσο είναι μικρότερη από C. Δηλαδή παίρνει τις τιμές 1, 2, 3, 4. Μετά κάνεις j=i-C=0.6, δηλαδή το j είναι το κλασματικό μέρος.
Και μετά λες ότι αν το κλασματικό μέρος είναι > 0.5, πρέπει R=i-1, ενώ αλλιώς R=i. Στην περίπτωσή μας θα γινόταν R=3. Μήπως κάνεις ανάποδα τον έλεγχο, και θα έπρεπε να είναι if j < 0.5;

Επίσης πρόσεξε ότι όταν το j είναι ακριβώς 0 τότε δεν θέλουμε R=i-1...

Αφήνω πάνω σου τις λεπτομέρειες διόρθωσης του κώδικα, κι αν κολλήσεις μας ξαναρωτάς. Προτείνω να τον επιδιορθώσεις μόνος με βάση τις παρατηρήσεις μου. Και κατόπιν να χρησιμοποιείς πάντα τις έτοιμες συναρτήσεις που πρότεινε ο switch: Αφού φαίνεται ότι είσαι δυνατός στα μαθηματικά, κάνε τη ζωή σου εύκολη με τον κώδικα ώστε να μπορείς να επικεντρωθείς στο δημιουργικό κομμάτι κι όχι στις λεπτομέρειες!

Καλή σου συνέχεια.

Υ.Γ.: Συγχαρητήρια για την λύση σου, είναι όμορφο που πρόσεξες ότι ανεξάρτητα απ' τη σειρά, ο τελικός χρόνος θα είναι
συνολικό_μέγεθος / συνολική_ταχύτητα = άθροισμα(ταχύτητα(i)*χρόνος_που_απομένει(i))/ άθροισμα(ταχύτητα(i))

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

το j δεν είναι ακριβώς το κλασματικό μέρος, είναι το 1-κλασματικό μέρος . Στο παράδειγμα που δίνεται μάλιστα είναι j=i-c=4-3,6=0,4 και όχι j=0,6 οπότε θα γίνει R=i=4 που είναι και το σωστό.
Τον αλγόριθμο για το R τον έτρεξα αυτόνομα και δουλεύει σε όλες τις περιπτώσεις κλασματικού μέρους, π.χ για C=2, C=2,3 ή C=5,5 και C=6,9.
Δεν γνώριζα πως η pascal υποστηρίζει συναρτήσεις τύπου floor,ceil. Θα κάτσω να ψάξω για αυτά γιατί στην τελική όντως γλιτώνουν χρόνο.
Συνεπώς υποθέτω πως το πρόγραμμά μου μπάζει από κάπου αλλού...

Re: Hellenico

Δημοσιεύτηκε: Παρ Ιαν 21, 2022 4:20 pm
από Κηπουρίδης
Ωχ, δίκιο έχεις, με συγχωρείς για το λάθος!
Δεν βλέπω τότε τι μπορεί να πάει λάθος, και δυστυχώς δεν έγραψα και ποτέ μου Πασκάλ. Αν το βρεις πριν από εμάς, ενημέρωσε σε παρακαλώ να μας φύγει η περιέργεια!!