#include <bits/stdc++.h> using namespace std; int n, m, k; bool grid[5005][5005]; bool dp[5005][5005]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> m >> k; int x = 0; while (k--){ int r, c, z; cin >> r >> c >> z; r ^= x; c ^= x; r %= n; c %= m; for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) dp[i][j] = false; grid[r][c] = true; dp[0][0] = true; for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j){ if (grid[i][j]) continue; if (i > 0 && dp[i-1][j] == true) dp[i][j] = true; if (j > 0 && dp[i][j-1] == true) dp[i][j] = true; } /*for (int i = 0; i < n; ++i){ for (int j = 0; j < m; ++j) cout << dp[i][j] << " "; cout << "\n"; }*/ if (!dp[n-1][m-1]){ cout << "TAK\n"; grid[r][c] = false; x ^= z; } else cout << "NIE\n"; } }
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 | #include <bits/stdc++.h> using namespace std; int n, m, k; bool grid[5005][5005]; bool dp[5005][5005]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> m >> k; int x = 0; while (k--){ int r, c, z; cin >> r >> c >> z; r ^= x; c ^= x; r %= n; c %= m; for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j) dp[i][j] = false; grid[r][c] = true; dp[0][0] = true; for (int i = 0; i < n; ++i) for (int j = 0; j < m; ++j){ if (grid[i][j]) continue; if (i > 0 && dp[i-1][j] == true) dp[i][j] = true; if (j > 0 && dp[i][j-1] == true) dp[i][j] = true; } /*for (int i = 0; i < n; ++i){ for (int j = 0; j < m; ++j) cout << dp[i][j] << " "; cout << "\n"; }*/ if (!dp[n-1][m-1]){ cout << "TAK\n"; grid[r][c] = false; x ^= z; } else cout << "NIE\n"; } } |