diff options
Diffstat (limited to 'inf/rtk/šolsko/1.c')
-rw-r--r-- | inf/rtk/šolsko/1.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/inf/rtk/šolsko/1.c b/inf/rtk/šolsko/1.c new file mode 100644 index 0000000..f93eb94 --- /dev/null +++ b/inf/rtk/šolsko/1.c @@ -0,0 +1,24 @@ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +int main (void) { + char buf[1024]; + double z = 0; + fgets(buf, 1024, stdin); /* prva vrstica ni potrebna */ + fgets(buf, 1024, stdin); + while (!feof(stdin)) { /* gremo čez vsako vrstico */ + int i = 0; /* indeks */ + int m = 1; /* trenutni imenovalec */ + do { + m *= 2; /* povečamo trenutni imenovalec */ + if (buf[i] == 'S') { + z += 1 / (double) m; /* povečamo za trenutno velikost kosa */ + /* fprintf(stderr, "sadi, %d, %f\n", m, z); */ + } + i++; + } while (buf[i-1] != '\n' && buf[i-1] != 0 && buf[i-1] != '\r'); /* konec vhoda */ + fgets(buf, 1024, stdin); /* poberemo novo vrstico */ + } + printf("%d\n", (int) ceil(z)); /* izpišemo vrednost, zaokroženo navzgor */ + return 0; /* končamo program */ +} |