제출 #1342897

#제출 시각아이디문제언어결과실행 시간메모리
1342897StefanSebezLinear Garden (IOI08_linear_garden)C++20
100 / 100
243 ms2280 KiB
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ll long long
const int N=1e6+50;
int n,mod;
string s;
ll dp[2][32][2];
int pre,now=1;
int main(){
    scanf("%i%i",&n,&mod);
    cin>>s;
    dp[now][0][1]=1;
    for(int i=0;i<n;i++){
        swap(pre,now);
        for(int x=0;x<32;x++)for(int j=0;j<=1;j++)dp[pre][x][j]%=mod,dp[now][x][j]=0;
        for(int x=0;x<32;x++){
            int xl=-1,xp=-1;
            if(!(x&1)){
                xl=x>>1;
                xl|=1<<1;
            }
            if(!(x>>4&1)){
                xp=x<<1;
                xp|=1<<3;
            }
            if(xl!=-1)dp[now][xl][0]+=dp[pre][x][0];
            if(xp!=-1)dp[now][xp][0]+=dp[pre][x][0];
            if(s[i]=='L'){
                if(xl!=-1)dp[now][xl][1]+=dp[pre][x][1];
            }
            else{
                if(xl!=-1)dp[now][xl][0]+=dp[pre][x][1];
                if(xp!=-1)dp[now][xp][1]+=dp[pre][x][1];
            }
        }
    }
    ll res=0;
    for(int x=0;x<32;x++)for(int j=0;j<=1;j++)res+=dp[now][x][j];
    res%=mod;
    printf("%lld\n",res);
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

linear_garden.cpp: In function 'int main()':
linear_garden.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |     scanf("%i%i",&n,&mod);
      |     ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...