Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <limits.h>
- int t[1001], r[1001], t1[1001], t2[1001];
- int minim(int a, int b)
- {
- if(a < b) return a;
- return b;
- }
- void afisare(int k)
- {
- if(k>=1)
- if(t1[k]<t2[k])
- {
- afisare(k-1);
- printf("%d\n", k);
- }
- else
- {
- afisare(k-2);
- printf("%d + %d\n", k-1, k);
- }
- }
- int main()
- {
- int i, n;
- FILE *f = fopen("concert.txt", "r");
- fscanf(f, "%d", &n);
- for(i = 1; i <= n; i++)
- fscanf(f, "%d", &t[i]);
- for(i = 1; i < n; i++)
- fscanf(f, "%d", &r[i]);
- fclose(f);
- t1[1] = t[1];
- t1[2] = t[1]+t[2];
- t2[1] = INT_MAX;
- t2[2] = r[1];
- for(i = 3; i <= n; i++)
- {
- t1[i] = t[i] + minim(t1[i-1] , t2[i-1]);
- t2[i] = r[i-1] + minim(t1[i-2] , t2[i-2]);
- }
- printf("Timpul minim de servire: %d\n", minim(t1[n] , t2[n]));
- printf("Modalitatea de cuplare a persoanelor la coada:\n");
- afisare(n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement