답안 #1109908

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1109908 2024-11-08T03:35:13 Z HNa_seawjing Nautilus (BOI19_nautilus) C++14
66 / 100
1000 ms 3152 KB
#include <bits/stdc++.h>
//code
#define fl(i,x,y,z) for(int i=x;i<=y;i=i+z)
#define fn(i,x,y,z) for(int i=x;i>=y;i=i-z)
#define rep(i,x,y) for(int i=x;i<y;i=i+1)
#define all(v) v.begin(),v.end()
#define pb emplace_back
#define tle cout<<"tle"<<endl
#define edl cout<<"\n"
#define el "\n"
#define getbit(x,i) ((x>>i)&1)
#define bitcnt __builtin_popcount
//ham
#define pii pair<int,int>
#define fi first
#define se second
#define ll long long
#define ld long double
#define inf 0x3f3f3f3f
//#define int long long
template <typename T1, typename T2>
bool minimize(T1 &a, T2 b)
{
    if (a > b)
    {
        a = b;
        return true;
    }
    return false;
}
template <typename T1, typename T2>
bool maximize(T1 &a, T2 b)
{
    if (a < b)
    {
        a = b;
        return true;
    }
    return false;
}
using namespace std;
const int maxn=5001;
int m,n,p;
string s;
bitset <maxn> dp[maxn],et[maxn],f[maxn],a[maxn];
void inp()
{
    cin>>m>>n>>p;
    fl(i,1,m,1)
        fl(j,1,n,1)
        {
            char x; cin>>x;
            if (x=='.') a[i][j]=1;
            else a[i][j]=0;
            dp[i][j]=a[i][j];
        }
}
void change(char t,int x)
{
    if (t=='?') f[x]=(dp[x-1]|dp[x+1]|(dp[x]>>1)|(dp[x]<<1))&a[x];
    else if (t=='N') f[x]=dp[x+1]&a[x];
    else if (t=='E') f[x]=(dp[x]<<1)&a[x];
    else if (t=='S') f[x]=dp[x-1]&a[x];
    else if (t=='W') f[x]=(dp[x]>>1)&a[x];
}
void sol()
{
    while (p--)
    {
        char type; cin>>type;
        fl(i,1,m,1) change(type,i);
        fl(i,1,m,1) dp[i]=f[i];
    }
    int cnt=0;
    fl(i,1,m,1)
        cnt+= dp[i].count();
    cout<<cnt;
}
signed main()
{
    #define name "seaw"
    if (fopen(name".inp", "r"))
    {
        freopen(name".inp", "r", stdin);
        freopen(name".out", "w", stdout);
    }
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    inp();
    sol();
    return 0;
}
/*   /\_/\
    ( ._. )
    / >V< \
*/

Compilation message

nautilus.cpp: In function 'int main()':
nautilus.cpp:84:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   84 |         freopen(name".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
nautilus.cpp:85:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   85 |         freopen(name".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 2640 KB Output is correct
2 Correct 3 ms 2640 KB Output is correct
3 Correct 4 ms 2808 KB Output is correct
4 Correct 3 ms 2640 KB Output is correct
5 Correct 3 ms 2640 KB Output is correct
6 Correct 3 ms 2640 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 2640 KB Output is correct
2 Correct 3 ms 2640 KB Output is correct
3 Correct 4 ms 2808 KB Output is correct
4 Correct 3 ms 2640 KB Output is correct
5 Correct 3 ms 2640 KB Output is correct
6 Correct 3 ms 2640 KB Output is correct
7 Correct 4 ms 2640 KB Output is correct
8 Correct 4 ms 2640 KB Output is correct
9 Correct 5 ms 2640 KB Output is correct
10 Correct 4 ms 2640 KB Output is correct
11 Correct 4 ms 2640 KB Output is correct
12 Correct 5 ms 2640 KB Output is correct
13 Correct 6 ms 2640 KB Output is correct
14 Correct 6 ms 2640 KB Output is correct
15 Correct 6 ms 2640 KB Output is correct
16 Correct 6 ms 2640 KB Output is correct
17 Correct 6 ms 2640 KB Output is correct
18 Correct 6 ms 2640 KB Output is correct
19 Correct 7 ms 2640 KB Output is correct
20 Correct 6 ms 2640 KB Output is correct
21 Correct 6 ms 2640 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 2640 KB Output is correct
2 Correct 3 ms 2640 KB Output is correct
3 Correct 4 ms 2808 KB Output is correct
4 Correct 3 ms 2640 KB Output is correct
5 Correct 3 ms 2640 KB Output is correct
6 Correct 3 ms 2640 KB Output is correct
7 Correct 4 ms 2640 KB Output is correct
8 Correct 4 ms 2640 KB Output is correct
9 Correct 5 ms 2640 KB Output is correct
10 Correct 4 ms 2640 KB Output is correct
11 Correct 4 ms 2640 KB Output is correct
12 Correct 5 ms 2640 KB Output is correct
13 Correct 6 ms 2640 KB Output is correct
14 Correct 6 ms 2640 KB Output is correct
15 Correct 6 ms 2640 KB Output is correct
16 Correct 6 ms 2640 KB Output is correct
17 Correct 6 ms 2640 KB Output is correct
18 Correct 6 ms 2640 KB Output is correct
19 Correct 7 ms 2640 KB Output is correct
20 Correct 6 ms 2640 KB Output is correct
21 Correct 6 ms 2640 KB Output is correct
22 Correct 712 ms 3144 KB Output is correct
23 Correct 706 ms 3152 KB Output is correct
24 Correct 674 ms 2896 KB Output is correct
25 Correct 718 ms 3152 KB Output is correct
26 Correct 691 ms 3136 KB Output is correct
27 Execution timed out 1059 ms 2896 KB Time limit exceeded
28 Halted 0 ms 0 KB -