summaryrefslogtreecommitdiffstats
path: root/inf/rtk/šolsko/4.c
diff options
context:
space:
mode:
Diffstat (limited to 'inf/rtk/šolsko/4.c')
-rw-r--r--inf/rtk/šolsko/4.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/inf/rtk/šolsko/4.c b/inf/rtk/šolsko/4.c
new file mode 100644
index 0000000..1aa574c
--- /dev/null
+++ b/inf/rtk/šolsko/4.c
@@ -0,0 +1,27 @@
+/*
+opisna rešitev:
+
+Naredimo seznam takih elementov:
+
+enum dejanje {
+ PRIHOD,
+ ODHOD
+};
+struct dejanje {
+ int čas;
+ int dolžina;
+ enum dejanje dejanje;
+};
+
+V zanki za vsak tovornjak v ta seznam dodamo ta dejanja. Najprej dodamo dejanje s .dejanje == PRIHOD in čas prihoda, nato pa dejanje s .dejanje == ODHOD, ki vsebuje vrednost prihoda, ki ji je prištet čas postanka. V vsak element seznama dodamo tudi dolžino tovornjaka.
+
+Po velikosti uredimo glede na čas seznam dejanj s standardno funkcijo qsort(). Sortirna funkcija naj v obzir vzame tudi dejanje. Če je prvo dejanje ODHOD in drugo PRIHOD, imata pa isti čas, vrne -1 in s tem postavi ODHOD pred PRIHOD.
+
+Deklariramo številsko spremenljivko maksdolžina in jo inicializiramo na 0, prav tako naredimo spremenljivko trenutnadolžina.
+
+Gremo po urejenem seznamu v zanki in ko naletimo na element s .dejanje == PRIHOD, povečamo spremenljivko trenutnadolžina za .dolžina, ko naletimo na element s .dejanje == ODHOD, zmanjšamo spremenljivko trenutnadolžina za .dolžina. Vsakič na koncu programa v zanki preverimo, če je trenutnadolžina morebiti večja od maksdolžina, v tem primeru maksdolžina nastavimo na trenutnadolžina.
+
+Ob koncu te zanke na standardni izhod izpišemo spremenljivko maksdolžina in končamo program.
+
+*/
+