Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Zadatak: Zidarska
- Datum: 2012-01-03
- Autor zadatka: Krešimir Malnar, HSIN
- Ponuđeno rješenje za OS:
- Kristijan Burnik, udruga informatieara Božo Težak
- Složenost: o( T )
- Gmail: kristijanburnik
- */
- #include <iostream>
- #include <cstdlib>
- #include <algorithm>
- #include <cmath>
- #include <vector>
- #include <set>
- #include <map>
- #include <queue>
- using namespace std;
- // prvi index u polju je sekunda u kojoj komad pjesme zavrsava sa downloadom
- const int ZAVRSETAK = 0;
- // drugi index u polju je trajanje slusanja komada pjesme
- const int TRAJANJE = 1;
- int main() {
- int n;
- scanf("%d", &n);
- // imamo ukupno n komada pjesme za preuzeti i poslusati
- int komad[n][2];
- // koliko ce biti ukupno potrebno sekundi za preuzeti pjesmu?
- int trajanje_downloada = 0;
- for (int i = 0; i < n; i++) {
- int d,v;
- scanf("%d%d",&d,&v);
- // ukupno trajanje downloada do trenutnog dijela
- trajanje_downloada += v;
- // u kojoj sekundi zavrsava download ovog dijela?
- komad[i][ZAVRSETAK] = trajanje_downloada;
- // koliko traje slusanje ovog dijela?
- komad[i][TRAJANJE] = d;
- }
- // koliko je sekundi raspolozivo za slusanje do sada?
- int raspolozivo = 0;
- // ako bismo slusali bez cekanja, koliko bi imali sekundi tisine?
- int tisina = 0;
- // krecemo slusati od prvog dijela
- int dio = 0;
- // prolazimo kroz sve sekunde downloadanja
- for (int sekunda = 0; sekunda < trajanje_downloada; sekunda++) {
- if (sekunda >= komad[ dio ][ ZAVRSETAK ] ) {
- // trenutna sekunda je veca/jednaka vremenu zavrsetka trenutno promatranog dijela
- // ubrojimo da nam je sada raspoloziv pripadni broj sekundi za slusanje
- raspolozivo += komad[ dio ][ TRAJANJE ];
- // pomicemo se na iduci dio za download
- dio++;
- }
- if (raspolozivo > 0) {
- // ako imamo raspolozivog vremena za slusanje, odslusat cemo jednu sekundu
- raspolozivo--;
- } else {
- // ako nemamo nista za slusati, onda slusamo tisinu :-(
- tisina++;
- }
- }
- // minimalno vrijeme potrebno za cekanje je zapravo jednaka ukupnoj tisini
- // koju smo pretrpili :-D
- printf("%d\n",tisina);
- // system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement