Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct
- {
- int ti,tf;
- } spectacol;
- int cmp(const void *a,const void *b)
- {
- spectacol va=*(spectacol*)a;
- spectacol vb=*(spectacol*)b;
- if(va.tf == vb.tf)
- {
- return (va.ti-vb.ti);
- }
- return (va.tf-vb.tf);
- }
- void greedy(FILE *fout, int n, spectacol *v)
- {
- fprintf(fout, "Spectacolele selectate sunt:\n");
- fprintf(fout, "%d %d\n", v[0].ti, v[0].tf);
- spectacol ultspectbun = v[0];
- int i, cnt = 1;
- for(i = 1; i < n; i++)
- {
- if(v[i].ti >= ultspectbun.tf)
- {
- cnt++;
- ultspectbun = v[i];
- fprintf(fout, "%d %d\n", v[i].ti, v[i].tf); //pentru cuie afisam doar timpul de terminare si modific denumirile
- }
- }
- fprintf(fout, "Au fost selectate %d spectacole.\n", cnt);
- }
- int main()
- { FILE *fin, *fout;
- fin = fopen("date.in","r");
- fout = fopen("date.out","w");
- int n;
- // printf("Numarul de spectacole este :\n");
- fscanf(fin, "%d%*c", &n);
- spectacol *v = (spectacol*)malloc(n* sizeof(spectacol));
- int i;
- // printf("Orele de inceput si de final sunt:\n");
- for(i = 0; i < n; ++i)
- {
- fscanf(fin, "%d %d%*c", &v[i].ti, &v[i].tf);
- }
- qsort(v, n, sizeof(spectacol), cmp);
- greedy(fout, n, v);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment