int main(int argc, char *argv[]) { /* assert(gcd(10, 5) == 5); */ /* assert(gcd(42, 24) == 6); */ /* for (int i = 1; i < 20; ++i) { */ /* for (int j = 1; j < 30; ++j) { */ /* printf("TEST %d %d %lld %lld %lld\n", i, j, solve3(i, j), solve4(i, j), solve5(i, j)); */ /* assert(solve3(i, j) == solve5(i, j)); */ /* assert(solve4(i, j) == solve5(i, j)); */ /* } */ /* } */ int n = read_int(), m = read_int(); printf("%lld\n", solve5(n, m)); /* struct timespec start, end; */ /* clock_gettime(CLOCK_REALTIME, &start); */ /* printf("%lld\n", solve3(n, m)); */ /* clock_gettime(CLOCK_REALTIME, &end); */ /* printf("3 took %f secs\n", timespec_diff(&start, &end)); */ /* clock_gettime(CLOCK_REALTIME, &start); */ /* printf("%lld\n", solve4(n, m)); */ /* clock_gettime(CLOCK_REALTIME, &end); */ /* printf("4 took %f secs\n", timespec_diff(&start, &end)); */ /* clock_gettime(CLOCK_REALTIME, &start); */ /* printf("%lld\n", solve5(n, m)); */ /* clock_gettime(CLOCK_REALTIME, &end); */ /* printf("4 took %f secs\n", timespec_diff(&start, &end)); */ /* solve4(4, 4); */ /* for (int i = 10000; i < 20000; ++i) { */ /* for (int j = 10000; j < 20000; ++j) { */ /* printf("%d %d\n", i, j); */ /* assert(solve3(i, j) == solve4(i, j)); */ /* } */ /* } */ /* struct timespec start, end; */ /* int base = 1000; */ /* int mul = 2; */ /* for (int i = 0; i < 10; ++i) { */ /* int cur = base * mul; */ /* mul *= 2; */ /* clock_gettime(CLOCK_REALTIME, &start); */ /* printf("%lld\n", solve4(cur, cur)); */ /* clock_gettime(CLOCK_REALTIME, &end); */ /* double t1 = start.tv_sec + (start.tv_nsec / 1000000000.0); */ /* double t2 = end.tv_sec + (end.tv_nsec / 1000000000.0); */ /* printf("cur: %d TIME: %f\n", cur, t2 - t1); */ /* } */ return 0; }
Coloring Problem::solve(int exercise, int runs) const { if (runs < 1) { throw std::out_of_range("La cantidad de corridas debe ser mayor a 0"); } switch (exercise) { case 1: for (auto i = 0; i < runs - 1; ++i) { solve1(); } return solve1(); case 2: for (auto i = 0; i < runs - 1; ++i) { solve2(); } return solve2(); case 3: for (auto i = 0; i < runs - 1; ++i) { solve3(); } return solve3(); case 4: for (auto i = 0; i < runs - 1; ++i) { solve4(); } return solve4(); case 5: for (auto i = 0; i < runs - 1; ++i) { solve5(); } return solve5(); default: throw std::out_of_range("Los ejercicios estan numerados del 1 al 5"); } }