Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma warning (disable:4996)
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <math.h>
- void citire(int n, int *s, int *f) {
- for (int i = 0;i < n;i++) {
- printf("Introduceti ora de inceput a cursului %d: ", i + 1);
- scanf("%d", &s[i]);
- printf("Introduceti ora de sfarsit a cursului %d: ", i + 1);
- scanf("%d", &f[i]);
- }
- }
- void afis(int n, int *s, int *f) {
- for (int i = 0;i < n;i++)
- printf("Spetacolul %d incepe la %d se termina la %d\n", i, s[i], f[i]);
- }
- void schimba(int *s, int *f, int i, int j) {
- int aux = s[i];
- s[i] = s[j];
- s[j] = aux;
- aux = f[i];
- f[i] = f[j];
- f[j] = aux;
- }
- void sortare_dupa_ora_de_start(int n, int *s, int *f) {
- for (int i = 0;i < n - 1;i++)
- for (int j = i + 1;j < n;j++)
- if ((s[i] == s[j]) && (f[i] > f[j]))
- schimba(s, f, i, j);
- else
- if (s[i] > s[j])
- schimba(s, f, i, j);
- }
- void greedy(int n, int *s, int *f) {
- int i = 0;
- int *s1, *f1;
- s1 = (int *)malloc(sizeof(int)*n);
- f1 = (int*)malloc(sizeof(int)*n);
- s1[0] = s[0];
- f1[0] = f[0];
- for (int j = 1;j < n;j++)
- if (s[j] >= f[i]) {
- i++;
- s1[i] = s[j];
- f1[i] = f[j];
- }
- afis(i + 1, s1, f1);
- }
- void main() {
- int n, *s, *f;
- printf("n=");
- scanf("%d", &n);
- s = (int *)malloc(sizeof(int)*n);
- f = (int*)malloc(sizeof(int)*n);
- citire(n, s, f);
- sortare_dupa_ora_de_start(n, s, f);
- afis(n, s, f);
- greedy(n, s, f);
- _getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement