Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct cub
- {
- int latura, culoare;
- };
- void citire(FILE *fin, int *n, int *p, struct cub *ptr)
- {
- fscanf(fin,"%d",&(*n));
- fscanf(fin,"%d",&(*p));
- int i;
- for (i=0; i<*n; i++)
- {
- fscanf(fin,"%d %d",&ptr->latura,&ptr->culoare);
- ptr++;
- }
- }
- void afisare(FILE *fout, int n, struct cub *ptr)
- {
- fprintf(fout,"Vector sortat descrescator dupa latura:\n");
- int i;
- fprintf(fout,"%d\n",n);
- for (i=0; i<n; i++)
- {
- fprintf(fout,"%d %d \n", ptr->latura, ptr->culoare);
- ptr++;
- }
- }
- int comparator(const void *s1, const void *s2) //asta e pentru quicksort
- {
- struct cub *e1 = (struct cub *) s1;
- struct cub *e2 = (struct cub *) s2;
- return e2->latura - e1->latura;
- /*
- if (e1->latura > e2->latura)
- return -1;
- else if (e1->culoare < e2->culoare)
- return 1;
- return 0;*/
- }
- void greedy(FILE *fout, int n, struct cub *v)
- {
- fprintf(fout,"\n********************************************************\nRezolvare:\n");
- int i = 1, cul;
- fprintf(fout,"%d %d \n", v[0].latura, v[0].culoare);
- cul = v[0].culoare;
- while (i < n)
- {
- if (v[i].culoare != cul)
- {
- fprintf(fout,"%d %d \n", v[i].latura, v[i].culoare);
- cul = v[i].culoare;
- }
- i++;
- }
- }
- int main()
- {
- FILE *fin, *fout;
- fin = fopen("date.in","r");
- fout = fopen("date.out","w");
- struct cub vec[100];
- int n,p;
- citire(fin,&n,&p,vec);
- qsort(vec,n,sizeof(struct cub),comparator);
- afisare(fout,n,vec);
- greedy(fout,n,vec);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement