답안 #242850

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
242850 2020-06-29T12:12:28 Z oolimry Nautilus (BOI19_nautilus) C++14
0 / 100
5 ms 512 KB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 10;
bitset<MAXN> cur[MAXN];
bitset<MAXN> walls[MAXN];

int main(){
	ios_base::sync_with_stdio(false); cin.tie(0);
	
	int rows, cols, K; cin >> rows >> cols >> K;
	
	for(int r = 0;r < rows;r++){
		string s; cin >> s;
		for(int c = 0;c < cols;c++){
			int bit = (s[c] == '.');
			cur[r][c] = bit;
			walls[r][c] = bit;
		}
	}
	
	string command; cin >> command;
	for(char c : command){
		
		
		if(c == 'W'){
			for(int r = 0;r < rows;r++) cur[r] <<= 1;
		}
		if(c == 'E'){
			for(int r = 0;r < rows;r++) cur[r] >>= 1;
		}
		if(c == 'N'){
			for(int r = 0;r < rows-1;r++) cur[r] = cur[r+1];
			for(int c = 0;c < cols;c++) cur[rows-1][c] = 0;
		}
		if(c == 'S'){
			for(int r = rows-1;r >= 1;r--) cur[r] = cur[r-1];
			for(int c = 0;c < cols;c++) cur[0][c] = 0;
		}
		if(c == '?'){
			assert(false);
		}
		
		
		for(int r = 0;r < rows;r++) cur[r] &= walls[r];
		
		/*
		cout << c << ":\n";
		for(int r = 0;r < rows;r++){
			for(int c = 0;c < cols;c++){
				cout << cur[r][c];
			}
			cout << "\n";
		}
		cout << "\n\n";
		*/
	}
	
	int ans = 0;
	for(int r = 0;r < rows;r++) ans += cur[r].count();
	
	cout << ans;
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -