#include #include #include "Task.h" #include "Heap.h" int const N = 20; int const MAX_TIME = 50; int main() { std::cout << "L := [" << std::endl; Heap< Time > time( N ); Heap< Revenue > revenue( N ); Heap< Revenue_density > revenue_density( N ); for ( int i = 0; i < N; ++i ) { int t = (rand() % 20) + 1; // int r = (rand() % 20) + 1; int r = t + rand() % 6; std::cout << "[" << t <<"," << r << "],"; time.push( Time( t, r ) ); revenue.push( Revenue( t, r ) ); revenue_density.push( Revenue_density( t, r ) ); } std::cout << "NULL]:" << std::endl; int time_time = 0; int time_revenue = 0; for ( int i = 0; i < N && time_time < MAX_TIME; ++i ) { if ( time_time + time.top().time() <= MAX_TIME ) { time_time += time.top().time(); time_revenue += time.top().revenue(); std::cout << "|" << time.top().time() << " " << time.top().revenue() << "|"; } time.pop(); } std::cout << "[" << time_revenue; int revenue_time = 0; int revenue_revenue = 0; for ( int i = 0; i < N && revenue_time < MAX_TIME; ++i ) { if ( revenue_time + revenue.top().time() <= MAX_TIME ) { revenue_time += revenue.top().time(); revenue_revenue += revenue.top().revenue(); std::cout << "*" << revenue.top().time() << " " << revenue.top().revenue() << "*"; } revenue.pop(); } std::cout << "," << revenue_revenue; int revenue_density_time = 0; int revenue_density_revenue = 0; for ( int i = 0; i < N && revenue_density_time < MAX_TIME; ++i ) { if ( revenue_density_time + revenue_density.top().time() <= MAX_TIME ) { revenue_density_time += revenue_density.top().time(); revenue_density_revenue += revenue_density.top().revenue(); std::cout << "x" << revenue_density.top().time() << " " << revenue_density.top().revenue() << "x"; } revenue_density.pop(); } std::cout << "," << revenue_density_revenue << "],"; }