답안 #927548

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
927548 2024-02-15T03:38:35 Z Faisal_Saqib Nautilus (BOI19_nautilus) C++17
0 / 100
2 ms 1368 KB
#include <iostream>
#include <bitset>
using namespace std;
char g[501][501],dir;
int n,m,M;
bitset<501> row[501][5002];
int main()
{
  cin.tie(0);
  cout.tie(0);
  ios::sync_with_stdio(0);
  cin>>n>>m>>M;
  for(int i=0;i<n;i++)
  {
    for(int j=0;j<m;j++)
    {
      cin>>g[i][j];
      row[i][0][j]=(g[i][j]=='.');
    }
  }
  for(int j=0;j<M;j++)
  {
    cin>>dir;
    bool p=0;
    if(dir=='?')
        p=1;
    if(dir=='N' or p)
    {
       for(int i=1;i<n;i++)
          row[i-1][j+1]|=row[i][j];
    }
    if(dir=='E' or p)
    {
       for(int i=0;i<(n-1);i++)
          row[i][j+1]|=(row[i][j]<<1);
    }
    if(dir=='S' or p)
    {
       for(int i=0;i<(n-1);i++)
          row[i+1][j+1]|=row[i][j];
    }
    if(dir=='W' or p)
    {
       for(int i=0;i<(n-1);i++)
          row[i][j+1]|=(row[i][j]>>1);
    }
  }
  int ans=0;
  for(int x=0;x<n;x++)
  {
    for(int y=0;y<m;y++)
    {
      ans+=row[x][M][y];
  //    if(row[x][M][y])
//        cout<<"Can end at "<<x<<' '<<y<<endl;
    }
  }
  cout<<ans<<'\n';
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 1368 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 1368 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 1368 KB Output isn't correct
2 Halted 0 ms 0 KB -