1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

Слични документи
PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

Државно такмичење године 5. и 6. разред 1. [pločice] Правоугаону терасу димензија d s центиметара квадратних треба поплочати коришћењем плочица

PowerPoint Presentation

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Funkcije predavač: Nadežda Jakšić

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Tutoring System for Distance Learning of Java Programming Language

Računarski praktikum I - Vježbe 06 - Standard Template Library (2)

Računarski praktikum I - Vježbe 11 - Funktori

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Funkcije predavač: Nadežda Jakšić

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Uvod u računarstvo 2+2

Računarski praktikum I - Vježbe 01 - Uvod

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Primenjeno programiranje - vezbe GUI i baze podataka

Tutoring System for Distance Learning of Java Programming Language

Slide 1

Повезивање са интернетом

PowerPoint Presentation

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

COMARC/A Format

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

PowerPoint Presentation

Програмирај!

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

My_P_Red_Bin_Zbir_Free

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Uvod u računarstvo 2+2

1. Apsolutni pobednik na glasanju vreme memorija ulaz izlaz 0,1 s 64 Mb standardni ulaz standardni izla Apsolutni pobednik izbora je onaj ko osvoji ba

Hash, topsort (stack, queue), deque, map Hash 1. За дати низ од n елемената, где је n паран број и n <= 10 6, испитати да ли он може бити подељен на n

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Tutoring System for Distance Learning of Java Programming Language

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

070-ALIP2-udzbenik.indb

Uvod u računarstvo 2+2

Algoritmi SŠ P1

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

POSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE

PowerPoint Presentation

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Grananje u programu predavač: Nadežda Jakšić

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Matematika 1 - izborna

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

ПРИРОДА И ЗНАК РЕШЕЊА 2 b ax bx c 0 x1 x2 2 D b 4ac a ( сви задаци су решени) c b D xx 1 2 x1/2 a 2a УСЛОВИ Решења реална и различита D>0 Решења реалн

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

СТЕПЕН појам и особине

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature opti

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Matematka 1 Zadaci za vežbe Oktobar Uvod 1.1. Izračunati vrednost izraza (bez upotrebe pomoćnih sredstava): ( ) [ a) : b) 3 3

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Matrice. Algebarske operacije s matricama. - Predavanje I

OOP1 - domaci 2 (2004/05)

Microsoft Word - 1.Operacije i zakoni operacija

P9.1 Dodela resursa, Bojenje grafa

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan

Skripte2013

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п

Uvod u takmičarsko programiranje

Microsoft Word - ZadaciBacktrackingKombinatorika.doc

Algoritmi SŠ P1

COBISS3/Nabava

Osnove inženjerske informatike II. Uvod u programiranje Vaš prvi program K. F. & V. B.

Računarski praktikum I - Vježbe 09 - this, static

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА школска 2013/

PowerPoint Presentation

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Strukture predavač: Nadežda Jakšić

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

Programski jezik C

PHP kod

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

PuTTY CERT.hr-PUBDOC

ЕКОНОМСКИ ФАКУЛТЕТ УНИВЕРЗИТЕТА У ПРИШТИНИ КОСОВСКА МИТРОВИЦА

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

CIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup priro

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Математика 1. Посматрај слику и одреди елементе скуупова: а) б) в) средњи ниво А={ } B={ } А B={ } А B={ } А B={ } B А={ } А={ } B={ } А B={ } А B={ }

4. Веза између табела практичан рад 1. Повежите табеле Proizvodi и Proizvođači у бази података Prodavnica.accdb везом типа 1:N. 2. Креирајте табелу St

3.Kontrlne (upravlja~ke) strukture u Javi

Microsoft Word - 6ms001

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1

Infokup - Školsko Osnovne škole Algoritmi BaPaCpp

Uvod u računarstvo 2+2

Транскрипт:

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivnosti na njihovom računu. Prilikom svake transakcije posmatra se središnja vrednost m (medijana) prethodnih d transakcija i ako je tekuća transakcija veća ili jednaka od dvostruke vrednosti m, izdaje se upozorenje. Središnja vrednost niza se izračunava tako što se pronađe središnji element u nizu sortiranom po veličini (ako je broj elemenata paran, onda se uzima aritmetička sredina između dva elementa oko sredine niza). Napiši program koji na osnovu spiska transakcija određuje broj upozorenja koja će banka se poslati. Ulaz Sa standardnog ulaza se unosi ceo broj n (5 n 10 5 ) koji određuje ukupan broj transakcija, zatim broj d (1 d n), a zatim n vrednosti transakcija (prirodni brojevi između 1 i 200). Svi brojevi se nalaze u posebnim linijama. Izlaz Na standardni izlaz ispisati jedan prirodan broj koji predstavlja broj sumnjivih transakcija. Primer Ulaz 8 3 2 5 3 4 3 6 2 9 Izlaz 2 Sumnjive transakcije su 6 (ona je jednaka dvostrukom iznosu medijane niza 3, 4, 3 koji je jednak 3) i 9 (ona je veća od dvostrukog iznosa medijane niza 3, 6, 2 koji je jednak 3). REŠENJE Ovo je jedan od zadataka u kojem se određuju statistike segmenata niza fiksirane dužine (kaže se da ti segmenti predstavljaju klizajući prozor, tj. sliding window). U ovim situacijama najčešće nije potrebno čuvati istovremeno u memoriji sve članove serije (niza brojeva) koja se učitava sa standardnog ulaza, već je dovoljno elemente tekućeg segmenta (prozora) čuvati u FIFO redu (najlakši način za to je da upotrebimo bibliotečki tip queue tj. Queue).

Na početku programa popunjavamo red sa prvih d elemenata (iznosa prvih ddtransakcija) dodajući ih na kraj reda, a zatim u svakom narednom koraku pre dodavanja novog elementa na kraj, uklanjamo jedan element iz reda sa početka. Jedna od specifičnosti teksta zadatka je to što su iznosi transakcija celi brojevi od 1 do 200. To sugeriše da će se u dužem prozoru naći veliki broj transakcija sa istim iznosima i da je pogodna reprezentacija prozora zapravo asocijativni niz u kojem se broje pojavljivanja svake transakcije. Ažuriranje asocijativnog niza možemo vršiti inkrementalno, tako što svaki put kada dodamo iznos u prozor povećamo njegov broj pojavljivanja, a kada ga izbacimo iz prozora smanjimo njegov broj pojavljivanja. Da bismo izbegli rad sa realnim brojevima, umesto medijane, možemo izračunavati njenu dvostruku vrednosti i nju porediti sa narednim iznosom. Složenost ovog koraka određena je izračunavanjem parcijalnih suma, a to je prilično brzo, pošto je niz broja pojavljivanja iznosa dužine najviše 200 (složenost je konstanta, doduše sa velikim konstantnim faktorom). #include <iostream> #include <deque> #include <vector> #include <algorithm> using namespace std; // vraca dvostruki iznos medijane elemenata datog reda int dvostruka_medijana(const deque<int>& q) { // prebacujemo elemente reda u vektor (da bismo mogli da im menjamo redosled) vector<int> q1(begin(q), end(q)); // odredjujemo medijanu elemenata vektora if (q1.size() % 2!= 0) { // broj elemenata je neparan pa je medijana odredjena samo // sredisnjim elementom nth_element(begin(q1), next(begin(q1), q1.size() / 2), end(q1)); return 2 * q1[q1.size() / 2]; else { // broj elemenata je neparan pa je medijana odredjena pomocu dva // elementa oko sredisnjeg nth_element(begin(q1), next(begin(q1), q1.size() / 2-1), end(q1)); int a = q1[q1.size() / 2-1]; nth_element(begin(q1), next(begin(q1), q1.size() / 2), end(q1)); int b = q1[q1.size() / 2]; return a + b;

int main() { ios_base::sync_with_stdio(false); // ukupan broj transakcija int n; cin >> n; // sirina "prozora" koji sadrzi prethodne transakcije int d; cin >> d; // trenutni prozor (prethodnih d transakcija) deque<int> iznosi; // ucitavamo prvih d iznosa transakcija for (int i = 0; i < d; i++) { int iznos; cin >> iznos; iznosi.push_back(iznos); // ukupan broj sumnjivih transakcija int broj_sumnjivih = 0; for (int i = d; i < n; i++) { // citamo novi iznos int iznos; cin >> iznos; // proveravamo da li je on sumnjiv if (iznos >= dvostruka_medijana(iznosi)) broj_sumnjivih++; // uklanjamo stari iznos iz prozora iznosi.pop_front(); // dodajemo novi iznos u prozor iznosi.push_back(iznos); // ispisujemo konacan broj sumnjivih transakcija cout << broj_sumnjivih << endl; return 0; 2. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 1 s 32 MB standardni ulaz standardni izlaz Spam poruke su sve prisutnije u našim životima. Jedna od čestih metoda kako se od njih možemo zaštititi je da se prilikom objavljivanja e-mail adrese na webu ili negde drugde one malo promene kako ih programi za automatsko traženje e-mail adresa ne bi uočili. Za ovu priliku važe sledeća pravila za e-mail adrese:

1.) e-mail adresa je niz znakova koji se sastoji od malih slova engleske abecede ('a'...'z'), znakova '.' (tačka) i tačno jednog znaka '@'. 2.) neposredno levo i neposredno desno od znaka '@' mora se nalaziti slovo, a tačka ne sme biti ni prvi ni poslednji znak u adresi. Npr. adrese 'mama@ta..ta', 'm.am.a@t..a.t..a' i 'm@t' su ispravne, dok 'ma@', '.@ma.ma', '.mama@tata' i 'ma.ma@tata.tata.' nisu. Zaštita od spam-a je sledeća: 1.) prvo se znak '@' zameni nizom znakova 'at' 2.) zatim se niz znakova 'nospam' doda tačno jednom ili nijednom bilo gde u adresu (može ili na početak ili na kraj) Na taj način iz originalne e-mail adrese dobijamo zaštićenu. Napišite program koji će za neku zadanu zaštićenu e-mail adresu odrediti sve moguće različite originalne e-mail adrese od kojih se ona može dobiti. U prvom redu ulaza se nalazi niz maksimalne dužine 100 znakova. Taj niz predstavlja zaštićenu e-mail adresu. Treba ispisati sve različite originalne e-mail adrese (bilo kojim redosledom) iz kojih je mogla nastati zadana zaštićena adresa. Svaku adresu ispisati u novi red. PRIMER ulaz natva izlaz n@va ulaz a.batc.dnospam izlaz a.b@c.dnospam a.b@c.d REŠENJE #include <algorithm> #include <iostream> #include <iterator> #include <set> #include <string> using namespace std;

set<string> rez; void check( string a ) { if( a.find( "@" ) == string::npos ) return; if( a.find( ".@" )!= string::npos ) return; if( a.find( "@." )!= string::npos ) return; if( a[0] == '.' a[a.size()-1] == '.' ) return; if( a[0] == '@' a[a.size()-1] == '@' ) return; rez.insert( a ); void rec( string a, string b, int at, int nospam ) { if( at > 1 nospam > 1 ) return; if(!b.size() ) return check( a ); if( b.substr(0,2) == "at" ) rec( a+"@", b.substr(2), at+1, nospam ); if( b.substr(0,6) == "nospam" ) rec( a, b.substr(6), at, nospam+1 ); if( b.substr(0,8) == "anospamt" ) rec( a+"@", b.substr(8), at+1, nospam+1 ); rec( a + b.substr(0,1), b.substr(1), at, nospam ); int main( void ) { string s; cin >> s; rec( string(), s, 0, 0 ); copy( rez.begin(), rez.end(), ostream_iterator<string> (cout,"\n") ); return 0;

3. Dva URL-a su jednaka akko oba URL-a ukazuju na isti resurs na istom host-u, port-u, i putanji. Na primer, sledeci parovi URL-a ukazuju na isti resurs (datoteku): http://www.ncsa.uiuc.edu/htmlprimer.html#gs http://www.ncsa.uiuc.edu/htmlprimer.html#hd ili https://www.oreilly.com/index.html#p1 https://www.oreilly.com/index.html#q2 ili http://www.ibiblio.org http://ibiblio.org Napisati Java program koji za 2 URL-a koji se zadaju kao parametri komandne linije ispisuje poruku DA ako URL-ovi jednaki u smislu gornje definicije. U protivnom ispisuje poruku NE. REŠENJE Fragment koda koji Vas je zbunjivao try { URL u1 = new URL("http://www.ncsa.uiuc.edu/HTMLPrimer.html#GS"); URL u2 = new URL("http://www.ncsa.uiuc.edu/HTMLPrimer.html#HD"); if (u1.samefile(u2)) { System.out.println("DA\n"); else { System.out.println("NE\n"); catch (MalformedURLException ex) { System.err.println(ex); 4. 1. Koja IPv4 klasa adresa obezbeđuje najviše mreža? Odgovor: Klasa C 2. Koja tvrđenja tačno opisuje klase IP adresa? Na osnovu najstarijeg 1.bita može jasno da se odredi klasa IP adresa. Broj bitova za identifikaciju hostova je fiksno određen klasom mreže. Samo adrese klase A se mogu reprezentovati sa najstarijia 3 bita 100. Najviše 24 bita određuju identitet hosta u klasi C adrese. Najviše 24 bita određuju identitet mrežni ID. Tri od 5 klasa adresa su rezervisane za multicast i experimentalnu upotrebu. Odgovori:

Nije dovoljan najstariji 1.bit za jasno razlikovanje svih 5 klasa IP adresa. Na osnovu klase znamo koliko koristi bitova za mrezu a koliko za host (32 - mreza) U klasama A i B je potrebno manje od 24 bita, u klasi C je 24 bita potrebno za odre]ivanje hosta. 3. Kompanija ABC koristi mrežnu adresu 192.168.4.0 i masku 255.255.255.224 radi kreiranje podmreža. Koji je najveći broj hostova koji se može koristiti u svakoj podmreži? Odgovor: 30 255.255.255.224 224 binarno = 11100000 znaci ostaje nam 5 bitova za host i onda imamo 2^5 razlicitih hostova gde spadaju i 2 specijalna za broadcast i rip pa je resenje 32-2 = 30 4. Koja je mrežna broadcast adresa u klasi C za adresu 192.168.32.0 sa podraumevanom mrežnom podmaskom? Odgovor: 192.168.32.255 5. Za koiko bitova IPv6 adrese povećavaju veličinu IPv4 adrese? Odgovor: 128-32=96 6. Koji je opseg prvog okteta u klasi B adresa? Odgovor: Od 128 do 191 7. Koja IPv4 klasa adresa obezbeđuje najviše host adresa po mreži? Odgovor: Klasa A 8. Koji segment IP adresa dozvoljava hostovima koji su povezani na Router1 Fa0/0 da pristupe mrežama spolja? Odgovor: 192.168.1.66 do 192.168.1.94 192.168.1.65 = 11000000. 10101000.00000001. 01000001 192.168.1.95=11000000. 10101000.00000001. 01011111 9. Ruter R1 unutar mreže radi NATovanje adresa za rang adresa 10.1.1.0/24. HostA je poslao zahtev web serveru. Koja je odredišna IP adresa paketa koji se vraća sa web servera?

170.30.20.10