#include <iostream>
using namespace std;
void printMaxActivities(int s[], int f[], int n, int k[] )
{
int i, j;
printf (" new Following activities are selected \n");
// The first activity always gets selected
i = 0;
printf("%d ", i);
// Consider rest of the activities
for (j = 1; j < n; j++)
{
// If this activity has start time greater than or equal to the finish
// time of previously selected activity, then select it
if ((s[j] >= f[i]) &&( k[j-1]!=k[j]))
{
printf (" %d ", j);
i = j;
}
}
}
// driver program to test above function
int main()
{
int s[] = {10, 100,150, 200};
int f[] = {100,200,500,300};
int k[]={1,2,2,2};
int n = sizeof(s)/sizeof(s[0]);
printMaxActivities(s, f, n, k);
getchar();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIHByaW50TWF4QWN0aXZpdGllcyhpbnQgc1tdLCBpbnQgZltdLCBpbnQgbiwgaW50IGtbXSApCnsKICAgIGludCBpLCBqOwogCiAgICBwcmludGYgKCIgbmV3IEZvbGxvd2luZyBhY3Rpdml0aWVzIGFyZSBzZWxlY3RlZCBcbiIpOwogCiAgICAvLyBUaGUgZmlyc3QgYWN0aXZpdHkgYWx3YXlzIGdldHMgc2VsZWN0ZWQKICAgIGkgPSAwOwogICAgcHJpbnRmKCIlZCAiLCBpKTsKIAogICAgLy8gQ29uc2lkZXIgcmVzdCBvZiB0aGUgYWN0aXZpdGllcwogICAgZm9yIChqID0gMTsgaiA8IG47IGorKykKICAgIHsKICAgICAgLy8gSWYgdGhpcyBhY3Rpdml0eSBoYXMgc3RhcnQgdGltZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGZpbmlzaAogICAgICAvLyB0aW1lIG9mIHByZXZpb3VzbHkgc2VsZWN0ZWQgYWN0aXZpdHksIHRoZW4gc2VsZWN0IGl0CiAgICAgIGlmICgoc1tqXSA+PSBmW2ldKSAmJigga1tqLTFdIT1rW2pdKSkKICAgICAgewogICAgICAgICAgcHJpbnRmICgiICVkICIsIGopOwogICAgICAgICAgaSA9IGo7CiAgICAgIH0KICAgIH0KfQogCi8vIGRyaXZlciBwcm9ncmFtIHRvIHRlc3QgYWJvdmUgZnVuY3Rpb24KaW50IG1haW4oKQp7CiAgICBpbnQgc1tdID0gIHsxMCwgMTAwLDE1MCwgMjAwfTsKICAgIGludCBmW10gPSAgezEwMCwyMDAsNTAwLDMwMH07CiAgICBpbnQga1tdPXsxLDIsMiwyfTsKICAgIGludCBuID0gc2l6ZW9mKHMpL3NpemVvZihzWzBdKTsKICAgIHByaW50TWF4QWN0aXZpdGllcyhzLCBmLCBuLCBrKTsKICAgIGdldGNoYXIoKTsKICAgIHJldHVybiAwOwp9Cg==