24ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Σχετικά έγγραφα
ΘΕΜΑ Α ΦΑΣΗΣ. Υπολογιστικά Νέφη Ενδεικτικές Απαντήσεις

ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΤΕΛΙΚΗΣ ΦΑΣΗΣ Οι παρακάτω λύσεις είναι απολύτως ενδεικτικές

ΕΛΛΗΝΙΚΗ ΕΤΑΙΡΕΙΑ ΕΠΙΣΤΗΜΟΝΩΝ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΕΛΟΣ IFIP, IOI Org. GREEK COMPUTER SOCIETY MEMBER OF IFIP, IOI Org.

24ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

24ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΠΡΟΒΛΗΜΑΤΟΣ Β ΦΑΣΗΣ

ΕΛΛΗΝΙΚΗ ΕΤΑΙΡΕΙΑ ΕΠΙΣΤΗΜΟΝΩΝ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΕΛΟΣ IFIP, IOI

ΕΛΛΗΝΙΚΗ ΕΤΑΙΡΕΙΑ ΕΠΙΣΤΗΜΟΝΩΝ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ GREEK COMPUTER SOCIETY

ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

4.1 Αναζήτηση. Εισαγωγή στη C++

Απαντήσεις στο μάθημα Δομημένος Προγραμματισμός ΕΠΑΛ

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Προγραμματιστικές Τεχνικές

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

ιαφάνειες παρουσίασης #6 (β)

Fortran και Αντικειμενοστραφής προγραμματισμός.

Φροντιςτήριο. Linked-List

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Αρχές Προγραμματισμού

Δομές δεδομένων (Structures) Εισαγωγή στη C++

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Δομημένος Προγραμματισμός (ΤΛ1006)

ΕΛΛΗΝΙΚΗ ΕΤΑΙΡΕΙΑ ΕΠΙΣΤΗΜΟΝΩΝ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ GREEK COMPUTER SOCIETY

HY150a Φροντιστήριο 3 24/11/2017

Προγραμματισμός Υπολογιστών με C++

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

i M-1 1. ij f(i, j) N-1. (pixel) 2. M N (x, y) (x, y ) = 256. R(x, y), G(x, y), B(x, y)

ΠΡΟΤΥΠΑ. ΠΑΡΑ ΕΙΓΜΑ ηµιουργία πρότυπου στοίβας (stack) και στη συνέχεια δηµιουργία µιας στοίβας σηµείων.

Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 25 Ιουνίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας

Προγραμματισμός I (Θ)

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμό για ΗΜΥ

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

Διανύσματα στις 3 Διαστάσεις

Α2. Να γράψετε στο τετράδιό σας τους αριθμούς 1,2,3,4,5 από τη Στήλη Α και δίπλα το γράμμα α,β,γ,δ,ε,στ της Στήλης Β που δίνει τη σωστή αντιστοιχία.

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Δομές Επανάληψης. Εισαγωγή στη C++

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Πίνακες (Arrays) Εισαγωγή στη C++

Συναρτήσεις (Functions) Εισαγωγή στη C++

Μεθόδων Επίλυσης Προβλημάτων

Διαφάνειες παρουσιάσεων Αρχικές Διαφάνειες σε Pascal: Σ.Ζάχος, Ν.Παπασπύρου Προσαρμογή σε Fortran: Α.Παγουρτζής, Δ.Σούλιου

ΠΣ-ΕΡ+ΤΑΠΕ, όπου: ΠΧ είναι η πάγια χρέωση, ύψους Є. ΠΣ είναι το ποσό στρογγυλοποίησης (ΠΣ) του προηγούμενου λογαριασμού.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ

Lab 1: C/C++ Pointers and time.h. Panayiotis Charalambous 1

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός PASCAL

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Γλώσσα Προγραμματισμού C

Στοιχειώδης προγραμματισμός σε C++

Απάντηση. // We write in a header file named my_header.h #ifndef my_header_h #define my_header_h #define divides(x,y) (((y)%(x)==0)?

Αριθμητικοί αλγόριθμοι

Εισαγωγή στον Προγραμματισμό

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Δομές δεδομένων ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Προχωρημένα Θέματα ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ. Γεώργιος Παπαϊωάννου ( )

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομημένος Προγραμματισμός

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα προηγούμενα ακαδημαϊκά έτη: ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Α.Π.Θ. ΕΡΓΑΣΤΗΡΙΟ C++ ΕΞΑΜΗΝΟ Γ Ακαδηµαϊκό Έτος

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6)

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 8: Συναρτήσεις. Κ.

Εργαστήριο 4_1 Λεκτική Ανάλυση - Flex Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Δομημένος Προγραμματισμός (ΤΛ1006)

Μεθόδων Επίλυσης Προβλημάτων

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

International Olympiad in Informatics Ο μικρός αδελφός της Μαρίας έχει αφήσει τα παιγνίδια του σκορπισμένα στο πάτωμα του καθιστικού του.

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

2 using namespace s t d ; 4 { 12 int t= x ; 6 x=y ; 7 y=t ; 8 } 9 11 { 13 x= y ; 14 y=t ; 15 } {

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ

FORD S-MAX SMAX_ _V3_COVER.indd 1 08/07/ :38

C: Από τη Θεωρία στην Εφαρμογή

Μεθόδων Επίλυσης Προβλημάτων

Οντοκεντρικός Προγραμματισμός

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Περιεχόμενα. Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6) Τύποι Δεδομένων. Τελεστές. Αριθμητικές εκφράσεις

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Lab 1: C/C++ Pointers and time.h. Panayiotis Charalambous 1

ΑΣΚΗΣΕΙΣ ΓΙΑ ΤΟ ΕΡΓΑΣΤΗΡΙΟ 3

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Προγραμματισμός Ι. Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

Μονάδες 4. β. x=20 και y=10

Προγραμματισμός Η/Υ (ΤΛ2007 )

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

Transcript:

24ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΠΑΝΤΗΣΕΙΣ Β ΦΑΣΗΣ ΛΥΚΕΙΟΥ Ραδιοαστέρες (Pulsars) C++ ΚΑΝΕΛΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ (2 ο ΓΕΛ ΘΕΣΣΑΛΟΝΙΚΗΣ) /* NAME: KONSTANDINOS KANELIS * TASK: PULSARS * LANG: C++ */ #include<stdio.h> #include<algorithm> #define MAXN 1000010 using namespace std; struct pt ; int x,y,id; bool operator <(const pt& a) const pt P[MAXN],C[2*MAXN]; int N,M=0; return (x < a.x) (x == a.x && y < a.y); int CCW(pt a,pt b,pt c) return (b.x-a.x)*(c.y-a.y) - (b.y-a.y)*(c.x-a.x); bool cmp(pt a,pt b) return a.id<b.id; int main() Σελίδα 1 από 7

FILE* fin = fopen("pulsars.in","r"); FILE* fout = fopen("pulsars.out","w"); int i,t; fscanf(fin,"%d",&n); for(i=0;i<n;i++) fscanf(fin,"%d %d",&p[i].x,&p[i].y); P[i].id = i+1; sort(p,p+n); for(i=0;i<n;i++) while(m >=2 && CCW(C[M-2],C[M-1],P[i]) <= 0) M--; C[M++] = P[i]; for(i=n-2,t=m+1; i>=0; i--) while(m >=t && CCW(C[M-2],C[M-1],P[i]) <= 0) M--; C[M++] = P[i]; M--; sort(c,c+m,cmp); fprintf(fout,"%d\n",m); for(i=0;i<m;i++) fprintf(fout,"%d\n",c[i].id); fclose(fout); return 0; Σελίδα 2 από 7

C ΣΑΚΚΑΣ ΓΕΩΡΓΙΟΣ (4 ο ΓΕΛ Καλαμάτας) /* NAME: GEORGIOS SAKAS * TASK: PULSARS * LANG: C */ #include <stdio.h> #include <stdlib.h> int main(void) int shmeia,i; FILE *fin=fopen("pulsars.in","r"); fscanf(fin,"%d", &shmeia); int *x, *y; x=(int*)calloc(shmeia,sizeof(int)); y=(int*)calloc(shmeia,sizeof(int)); for(i=0;i<shmeia;i++) fscanf(fin,"%d %d", &x[i], &y[i]); fclose(fin); int min=y[0],minth=0; for(i=1;i<shmeia;i++) if(min>y[i]) min=y[i]; minth=i; int max=y[0],maxth=0; for(i=1;i<shmeia;i++) if(max<y[i]) max=y[i]; maxth=i; int *kor, shm=minth,count=0,blocks=50; kor=(int*)calloc(blocks,sizeof(int)); kor[0]=minth; while(shm!=maxth) shm=maxth; for(i=0;i<shmeia;i++) Σελίδα 3 από 7

if(i!=kor[count] && (x[shm]-x[kor[count]])*(y[i]- y[kor[count]])-(y[shm]-y[kor[count]])*(x[i]-x[kor[count]])<0) shm=i; count++; if(count>=blocks) blocks+=10; kor=(int*)realloc(kor,blocks*sizeof(int)); kor[count]=shm; shm=maxth; while(shm!=minth) shm=minth; for(i=0;i<shmeia;i++) if(i!=kor[count] && (x[shm]-x[kor[count]])*(y[i]- y[kor[count]])-(y[shm]-y[kor[count]])*(x[i]-x[kor[count]])<0) shm=i; count++; if(count>=blocks) blocks+=10; kor=(int*)realloc(kor,blocks*sizeof(int)); kor[count]=shm; free(x); free(y); FILE *fout=fopen("pulsars.out","w"); fprintf(fout,"%d\n", count); for(i=0;i<=shmeia;i++) int j=0; while(i!=kor[j] && j<count) j++; if(i==kor[j]) fprintf(fout,"%d\n", kor[j]+1); fclose(fout); free(kor); return(0); Σελίδα 4 από 7

PASCAL ΜΑΡΑΓΚΟΥ ΣΟΦΙΑ (ΓΕΛ ΣΥΡΟΥ) (* NAME: SOFIA MARAGOU * TASK: PULSARS * LANG: PASCAL *) program pdp_pulsars; var userfile:text; st:string; location,error:integer; s:array[1..1000000,1..2] of word; k:array[1..1000000] of longint; z,b,x1,y1,a,us,d,i,max,min,j,n:longint; bmax,flag:boolean; smax,sy:real; temp:longint; Assign(userfile,'pulsars.in'); reset(userfile); readln(userfile,st); val(st,n,error); for i:=1 to n do readln(userfile,st); location:=pos(' ', st); val(copy(st,1,location-1),s[i,1],error); val(copy(st,location+1,length(st)-location),s[i,2],error); close(userfile); max:=1;min:=1; for i:=1 to n do if s[i,2] > s[max,2] then max:=i if s[i,2]=s[max,2] then if s[i,1]>s[max,1] then max:=i; if s[i,2]<s[min,2] then Σελίδα 5 από 7

min:=i if s[i,2]=s[min,2] then if s[i,1]>s[min,1] then min:=i; for for i:=1 to n do k[i]:=0; d:=1; k[d]:=min; bmax:=false; flag:=false; us:=min; smax:=-2; while (flag=false) do if bmax=false then smax:=-2; for a:=1 to n do if a<>us then if s[a,2]>=s[us,2] then x1:=(s[a,1]-s[us,1]); y1:=(s[a,2]-s[us,2]); sy:=x1/sqrt(sqr(x1)+sqr(y1)); if sy>smax then smax:=sy; b:=a; if if for Σελίδα 6 από 7 us:=b; d:=d+1; k[d]:=us; if us=max then bmax:=true; end if smax:=2; for a:=1 to n do if a<>us then if s[a,2]<=s[us,2] then x1:=(s[a,1]-s[us,1]); y1:=(s[a,2]-s[us,2]); sy:=x1/sqrt(sqr(x1)+sqr(y1)); if sy<smax then smax:=sy; b:=a;

if if for us:=b; if us=min then flag:=true d:=d+1; k[d]:=us; end ; while for z:=2 to d do for i:=d downto z do if k[i]<k[i-1] then temp:=k[i]; k[i]:=k[i-1];k[i-1]:=temp; assign(userfile,'pulsars.out'); rewrite(userfile); writeln(userfile,d); for i:=1 to d do writeln(userfile,k[i]); close(userfile); end. Οι παραπάνω απαντήσεις είναι ενδεικτικές και κατά συνέπεια δεν σημαίνει ότι και άλλοι μαθητές δεν υπέβαλαν αντίστοιχες λύσεις. Σελίδα 7 από 7