#include <cstdio> #include <vector> #include <algorithm> int board[20][20]; void solve() { int n; scanf("%i", &n); int gold_left = 0; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) { scanf("%i", &board[i][j]); gold_left += board[i][j]; } int r = 0, c = 0; puts("R FARMER"); while(gold_left > 0) { if(board[r][c] == 0) { if(r % 2 == 0) { if(c == n-1) { printf("M %i %i %i %i\n", r, c, r+1, c); r++; } else { printf("M %i %i %i %i\n", r, c, r, c+1); c++; } } else { if(c == 0) { printf("M %i %i %i %i\n", r, c, r+1, c); r++; } else { printf("M %i %i %i %i\n", r, c, r, c-1); c--; } } } int gain = std::min(10, board[r][c]); board[r][c] -= gain; gold_left -= gain; puts("="); } for(; r > 0; r--) printf("M %i %i %i %i\n=\n", r, c, r-1, c); for(; c > 0; c--) printf("M %i %i %i %i\n=\n", r, c, r, c-1); puts("==="); } int main() { int t; scanf("%i %*i", &t); while(t--) solve(); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include <cstdio> #include <vector> #include <algorithm> int board[20][20]; void solve() { int n; scanf("%i", &n); int gold_left = 0; for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) { scanf("%i", &board[i][j]); gold_left += board[i][j]; } int r = 0, c = 0; puts("R FARMER"); while(gold_left > 0) { if(board[r][c] == 0) { if(r % 2 == 0) { if(c == n-1) { printf("M %i %i %i %i\n", r, c, r+1, c); r++; } else { printf("M %i %i %i %i\n", r, c, r, c+1); c++; } } else { if(c == 0) { printf("M %i %i %i %i\n", r, c, r+1, c); r++; } else { printf("M %i %i %i %i\n", r, c, r, c-1); c--; } } } int gain = std::min(10, board[r][c]); board[r][c] -= gain; gold_left -= gain; puts("="); } for(; r > 0; r--) printf("M %i %i %i %i\n=\n", r, c, r-1, c); for(; c > 0; c--) printf("M %i %i %i %i\n=\n", r, c, r, c-1); puts("==="); } int main() { int t; scanf("%i %*i", &t); while(t--) solve(); } |