Submission #94822

#TimeUsernameProblemLanguageResultExecution timeMemory
94822hhhhhhhhTreasure (different grader from official contest) (CEOI13_treasure2)C++14
0 / 100
2 ms380 KiB
//#include <printf.h> #include "treasure.h" int treasureCount; int treasures[101][2]; void reportAll() { for (int i = 0; i < treasureCount; ++i) { Report(treasures[i][0], treasures[i][1]); } } void find(int r1, int c1, int row_size, int col_size) { int row_divide = row_size / 2, col_divide = col_size / 2; int row_remain = row_size - row_divide, col_remain = col_size - col_divide; for (int i = 0; i < 2; ++i) { for (int j = 0; j < 2; ++j) { int nr = r1 + (row_divide * i), nc = c1 + (col_divide * j); int new_row_size = (i == 0) ? row_divide : row_remain; int new_col_size = (j == 0) ? col_divide : col_remain; int num = countTreasure(nr, nc, nr + new_row_size - 1, nc + new_col_size - 1); if (num == new_row_size * new_col_size) { for (int k = 0; k < new_row_size; ++k) { for (int l = 0; l < new_col_size; ++l) { treasures[treasureCount][0] = nr + k; treasures[treasureCount][1] = nc + l; treasureCount++; } } } else if (!num) { } else { find(nr, nc, new_row_size, new_col_size); } } } } void findTreasure(int N) { find(1, 1, N, N); reportAll(); }
#Verdict Execution timeMemoryGrader output
Fetching results...