diff options
Diffstat (limited to 'šola/p2/dn/DN09b_63230317.c')
-rw-r--r-- | šola/p2/dn/DN09b_63230317.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/šola/p2/dn/DN09b_63230317.c b/šola/p2/dn/DN09b_63230317.c new file mode 100644 index 0000000..daca2bf --- /dev/null +++ b/šola/p2/dn/DN09b_63230317.c @@ -0,0 +1,48 @@ +#include <stdio.h> +#include <stdlib.h> +#include <stdbool.h> +int next (bool * s, int l) { + bool hit0 = false; + bool hit1after0 = false; + int end1count = 0; + int end1 = l-1; + for (int i = l-1; i >= 0; i--) { + if (!s[end1]) + end1--; + if (!hit0 && s[i] == 1) + end1count++; + if (!s[i]) + hit0 = true; + if (hit0 && s[i]) + hit1after0 = true; + } + if (end1 == -1) { // prazen vhod, sedaj 1 bit + for (int i = 0; i < l; i++) + s[i] = false; + s[0] = true; + return 1; + } + if (!hit0) + return len+1; // konec + if (!hif1after0) { // inc št enic + for (int i = 0; i < l; i++) { + s[i] = false; + if (i < end1count) + s[i] = true; + } + return end1count; + } +} +int main (void) { + int s, g, m; + scanf("%d", &s); + char * i[s]; + char * r[s]; + for (int i = 0; i < s; i++) + scanf("%ms %ms", &i[s], &r[s]); + scanf("%d", &g); + char * gl[g]; + for (int i = 0; i < s; i++) + scanf("%ms", &gl[s]); + bool samost[s]; +} |