#include #include #include "Task.h" #include "Heap.h" int const N = 100; int const MAX_TIME = 100; int main() { std::cout << "L := [" << std::endl; for ( int k = 0; k < 1000; ++k ) { 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; time.push( Time( t, r ) ); revenue.push( Revenue( t, r ) ); revenue_density.push( Revenue_density( t, r ) ); } 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(); } 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(); } 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(); } revenue_density.pop(); } std::cout << "," << revenue_density_revenue << "],"; } std::cout << "NULL]:" << std::endl; }