답안 #593255

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
593255 2022-07-10T16:46:48 Z cadmiumsky Nautilus (BOI19_nautilus) C++14
0 / 100
28 ms 340 KB
#include <bits/stdc++.h>

using namespace std;

int main() {
  int n, m, q;
  cin >> n >> m >> q;
  vector<bitset<11>> mat(n + 2), templ, temp;
  for(int i = 1; i <= n; i++) {
    for(int j = 1; j <= m; j++) {
      char ch;
      cin >> ch;
      mat[i][j] = (ch == '.'? 1 : 0);
    }
  }
  templ = mat;
  
  
  for(int tc = 0; tc < q; tc++) {
    char ch;
    cin >> ch;
    if(ch == 'W') {
      for(int i = 1; i <= n; i++)
        mat[i] = (templ[i] & (mat[i] << 1));
    }
    if(ch == 'E') {
      for(int i = 1; i <= n; i++)
        mat[i] = (templ[i] & (mat[i] >> 1));
    }
    if(ch == 'N') {
      for(int i = 1; i <= n; i++) {
        mat[i] = mat[i + 1] & templ[i];
      }
    }
    if(ch == 'S') {
      for(int i = n; i > 0; i--) {
        mat[i] = mat[i - 1] & templ[i];
      }
    }
    if(ch == '?') {
      temp = mat;
      for(int i = 1; i <= n; i++)
        mat[i] = (mat[i] | (mat[i] >> 1) | (mat[i] << 1) | temp[i - 1] | temp[i + 1]) & templ[i];
    }
    for(int i = 1; i <= n; i++) {
      cerr << mat[i] << '\n';
    }
    cerr << '\n';
  }
  int total = 0;
  for(int i = 1; i <= n; i++) {
    total += mat[i].count();
  }
  cout << total << '\n';
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 28 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 28 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 28 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -