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

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

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

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

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

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

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

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

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

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

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

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

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

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

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

Δομές Δεδομένων και Αλγόριθμοι (Γ εξάμηνο) Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Ηπείρου. Άσκηση εργαστηρίου #6 (Υλοποίηση δυαδικού δένδρου αναζήτησης)

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

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

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

ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

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

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

Υπολογισμός - Εντολές Επανάληψης

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

Ειδικά Θέματα Ι. Σήμερα!

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

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

Δομές Δεδομένων & Αλγόριθμοι

Προχωρημένες έννοιες προγραμματισμού σε C

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

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

Προγραμματισμός Ι (HY120)

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

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

Επεξεργασία κειμένου και συμβολοσειρών σε C

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

Κεφάλαιο : Επαναλήψεις (for, do-while)

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp

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

Προγραμματισμός Αναδρομή

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Β' Περιόδου Θέµα 1. (α')

Προγραμματισμός Αναδρομή

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

Συναρτήσεις και Πίνακες

Απάντηση. // 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)?

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

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

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

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

#4. Heaps (σωροί), η ταξινόμηση HeapSort, η δομή std::priority_queue της STL

Wii. Wii. ., Wii. Bluetooth, , Bluetooth , 1., Wii. ., SANYO eneloop, 2 Bluetooth, PC. , Windows. 1. Wii

Ερώτημα Α 1. Να γράψετε τις εντολές που πραγματοποιούν τα ακόλουθα:

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

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

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

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

Εκφωνήσεις ασκήσεων εργαστηρίου 1

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

Δομές Δεδομένων και Αλγόριθμοι

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Εργαστήριο 2: Πίνακες

double sum(double a, double b) { return(a+b); } double my_avg(double a, double b) { return(sum(a, b)/2.0); }

Εισαγωγή στους Αλγορίθμους

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

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

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

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Παίρνοντας Αποφάσεις 1

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

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

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

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

Το πρόγραμμα θα τυπώνει και τους τρεις πίνακες.

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

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης

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

Συναρτήσεις και διαδικασίες

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

Υπερφόρτωση τελεστών (operator(

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

Γράφοι. Ορολογία. Ορισµός: G = (V, E) όπου. Ορολογία (συνέχεια) γράφος ή γράφηµα (graph) V:ένα σύνολο E:µια διµελής σχέση στο V

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

Transcript:

26 ος ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΑ ΤΕΛΙΚΗΣ ΦΑΣΗΣ Θέμα 1 ο : Άθροισμα ζευγών Αριστοφάνης Ροντογιάννης #include <stdio.h> #include <algorithm> [30 Μονάδες] using namespace std; const int MAXN = 1000002; int a[maxn]; int main() { #ifdef CONTEST freopen("sumpair.in", "r", stdin); freopen("sumpair.out", "w", stdout); #else freopen("input.txt", "r", stdin); freopen("output2.txt", "w", stdout); #endif int n, q; scanf("%d %d", &n, &q); for(int i=0; i<n; ++i) scanf("%d", a+i); sort(a, a+n); while(q--) { int val; scanf("%d", &val); int ok = 0; int lo = 0, hi = n-1; while(lo < hi) { if(a[lo] + a[hi] > val) hi--; else if(a[lo] + a[hi] < val) lo++; else { ok = 1; break; if(ok) printf("true\n"); else printf("false\n"); Σελίδα 1 από 5

Θέμα 2 ο : Επισκευή δρόμου [35 Μονάδες] Χρήστος Πόριος (92%) #include <cstdio> inline int max(int a, int b) { return (a>b)?a:b; struct Node { int lo, hi, mid, range; int rval, lval, mval, val; bool painted; Node *left, *right; void make_children() { if(range==1) return; if(left == 0) left = new Node(lo, mid, painted); if(right == 0) right = new Node(mid+1, hi, painted); void update() { if(range==1) return; lval = left->lval; if(left->val == left->range) lval = left->val + right- >lval; rval = right->rval; if(right->val == right->range) rval = right->val + left- >rval; mval = max(max(left->val, right->val), left->rval + right->lval); val = max(max(lval, rval), mval); void paint(int qlo, int qhi) { if(qlo <= lo && qhi >= hi) { rval = lval = mval = val = 0; painted = true; return; make_children(); if(qlo <= mid) left->paint(qlo, qhi); if(qhi > mid) right->paint(qlo, qhi); update(); Σελίδα 2 από 5

Node(int l, int h, bool p) { //printf("building node for [%d, %d] (%c)\n", l, h, painted?'b':'w'); lo = l; hi = h; mid = (lo+hi)/2; range = hi-lo+1; painted = p; left = right = 0; if(painted) rval = lval = mval = val = 0; else rval = lval = mval = val = range; *root; int main() { FILE *fin = fopen("roadwork.in", "r"), *fout = fopen("roadwork.out", "w"); int N, L, X; fscanf(fin, "%d %d %d", &N, &L, &X); root = new Node(1, L, false); for(int i=1;i<=n;i++) { int lo, hi; fscanf(fin, "%d %d", &lo, &hi); root->paint(lo, hi); if(root->val < X) { fprintf(fout, "%d\n", i); fclose(fin); fclose(fout); fprintf(fout, "-1\n"); fclose(fin); fclose(fout); Σελίδα 3 από 5

Θέμα 3 ο : Μετατροπή αριθμών [35 Μονάδες] Δημήτρης Λως #include <cstdio> #include <cstdlib> #include <algorithm> using namespace std; long long M; int sm(long long k, long long n, long long L){ long long pr = 1, sum = 0; for (long long i = 0; i!=n && sum < L; i++){ sum += pr; pr *= k; if (L > sum) return -1; if (L < sum) return 1; long long minim; long long check(long long sum, long long test){ long long point, st, en, mn; int tmp; for (long long i = 1; i!=45; i++){ //point = M / i; st = 2; en = M+1; while(st < en-1){ //printf("%lld %lld\n", st, en); mn = (st+en)/2; tmp = sm(mn, i, sum); if (tmp==0) { if (test < mn) {minim = min(mn, minim); break; else if (tmp==1) en = mn-1; else st = mn+1; if (sm(en, i, sum)==0) if (test < en) minim = min(en, minim); if (sm(st, i, sum)==0) if (test < st) minim = min(st, minim); long long divi[2000100]; int main(){ int N; printf("hi"); FILE *fi = fopen("numbase.in", "r"); fscanf(fi, "%d", &N); FILE *fo = fopen("numbase.out", "w"); Σελίδα 4 από 5

while(n--){ //printf("hi"); fscanf(fi, "%lld", &M); //printf("%lld\n", M); if (M==1) {fprintf(fo, "2\n"); continue; // For one long long z, mn, k = 1; // Find divisors int count = 0; while (k*k <= M){ if (M%k==0) { divi[count++] = k; divi[count++] = (long long) M / (long long) k; k++; minim = M+1; for (int i = 0; i<count; i++){ //printf("hi %lld %lld\n", divi[i], M/divi[i]); check(divi[i], (long long)m/(long long)divi[i]); fprintf(fo, "%lld\n", minim); Με τη συνεργασία: Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης, Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών, Εθνικού Μετσόβιου Πολυτεχνείου, Πανεπιστημίου Αιγαίου, Πανεπιστημίου Ιωαννίνων, Πανεπιστημίου Πατρών, Πανεπιστημίου Πειραιώς, ΤΕΙ Αθήνας. Σελίδα 5 από 5