Advertisement
GamerBhai02

5. Activity Selection Problem

Nov 25th, 2024 (edited)
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.08 KB | Source Code | 0 0
  1. https://onlinegdb.com/kv4Uq1enf
  2. #include <stdio.h>
  3. typedef struct {
  4.     int start, finish;
  5. } Activity;
  6. void activitySelection(Activity activities[], int n) {
  7.     int lastSelected = 0;
  8.     printf("Selected activities:\n%d %d\n", activities[0].start, activities[0].finish);
  9.     for (int i = 1; i < n; i++) {
  10.         if (activities[i].start >= activities[lastSelected].finish) {
  11.             printf("%d %d\n", activities[i].start, activities[i].finish);
  12.             lastSelected = i;
  13.         }
  14.     }
  15. }
  16. int main() {
  17.     int n;
  18.     printf("Enter number of activities: ");
  19.     scanf("%d", &n);
  20.     Activity activities[n];
  21.     printf("Enter start and finish times:\n");
  22.     for (int i = 0; i < n; i++) scanf("%d %d", &activities[i].start, &activities[i].finish);
  23.     for (int i = 1; i < n; i++) {
  24.         Activity key = activities[i];
  25.         int j = i - 1;
  26.         while (j >= 0 && activities[j].finish > key.finish) {
  27.             activities[j + 1] = activities[j];
  28.             j--;
  29.         }
  30.         activities[j + 1] = key;
  31.     }
  32.     activitySelection(activities, n);
  33.     return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement