Alex_tz307

Addictive Game - Level 4 - BAD

Oct 27th, 2020 (edited)
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. ifstream fin("text.in");
  6. ofstream fout("text.out");
  7.  
  8. int N, M, points;
  9. vector < vector < int > > grid, a;
  10.  
  11. int main() {
  12.     fin >> N >> M >> points;
  13.     grid = vector < vector < int > >(N + 1, vector < int >(M + 1));
  14.     for(int i = 0; i < points; ++i) {
  15.         int index, colour;
  16.         fin >> index >> colour;
  17.         int lin = index / M + 1;
  18.         if(index % M == 0)
  19.             --lin;
  20.         int col = index % M;
  21.         if(col == 0)
  22.             col = M;
  23.         grid[lin][col] = colour;
  24.     }
  25.     int n_paths;
  26.     fin >> n_paths;
  27.     for(int itr = 0; itr < n_paths; ++itr) {
  28.         int colour, index, lg;
  29.         fin >> colour >> index >> lg;
  30.         int lin = index / M + 1;
  31.         if(index % M == 0)
  32.             --lin;
  33.         int col = index % M;
  34.         if(col == 0)
  35.             col = M;
  36.         a = grid;
  37.         a[lin][col] = -1;
  38.         int ok = 1;
  39.         bool reached = false;
  40.         for(int i = 0; i < lg; ++i) {
  41.             char dir;
  42.             fin >> dir;
  43.             fin.get();
  44.             if(ok == 1) {
  45.                 if(dir == 'N')
  46.                     --lin;
  47.                 else
  48.                     if(dir == 'E')
  49.                         ++col;
  50.                 else
  51.                     if(dir == 'S')
  52.                         ++lin;
  53.                 else
  54.                     --col;
  55.                 if(lin < 1 || col < 1 || lin > N || col > M)
  56.                     ok = -1;
  57.                 if(a[lin][col] != 0) {
  58.                     if(a[lin][col] == colour) {
  59.                         if(i == lg - 1)
  60.                             reached = true;
  61.                     }
  62.                     else
  63.                         ok = -1;
  64.                 }
  65.                 a[lin][col] = -1;
  66.             }
  67.         }
  68.         if(!reached)
  69.             ok = -1;
  70.         if(ok == 1)
  71.             grid = a;
  72.     }
  73.     for(int i = 1; i <= N; ++i , fout << '\n')
  74.         for(int j = 1; j <= M; ++j , fout << ' ') {
  75.             if(grid[i][j] == 0)
  76.                 fout << 0;
  77.             else
  78.                 fout << 1;
  79.         }
  80. }
  81.  
Add Comment
Please, Sign In to add comment