답안 #805101

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
805101 2023-08-03T13:05:40 Z BidoTeima Linear Garden (IOI08_linear_garden) C++17
0 / 100
65 ms 65536 KB
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const int N = 1e6 + 3;
int mod;
int n;
int a[N];
int dp[2][2][2][N];
int rec(int idx, int p1, int p2, bool less){
    if(idx == n){
        return 1;
    } 
    assert(a[idx]==0||a[idx]==1);
    if(p1!=-1&&p2!=-1&&dp[p1][p2][less][idx]!=-1){
        return dp[p1][p2][less][idx];
    }
    int ret = 0;
    if(p1==-1||p2==-1||p1!=p2){
        for(int i = 0; less? i <= 1 : i <= a[idx]; i++){
            assert(i!=2);
            ret += rec(idx+1,i,p1,less||(i<a[idx]));
        }
    } else if(p1 == 0){
        if(a[idx]==1||less)ret+=rec(idx+1,1,p1,less);
    }
    else{
        ret+=rec(idx+1,0,p1,less||a[idx]);
    }
    ret%=mod;
    if(p1!=-1&&p2!=-1){
        dp[p1][p2][less][idx]=ret;
    }
    return ret;
}
int main()
{
    memset(dp,-1,sizeof(dp));
    cin>>n>>mod;
    for(int i = 0; i < n; i++){
        char ch;
        cin>>ch;
        a[i]=ch=='P';
    }
    cout<<(rec(0,-1,-1,0)-1+mod)%mod;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 13 ms 31572 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31616 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31604 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 13 ms 31620 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 15 ms 31608 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31620 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31560 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 13 ms 31544 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31584 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31572 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31524 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31572 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 31572 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 16 ms 31780 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 17 ms 33592 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 33740 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 37644 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 26 ms 38792 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 60 ms 62200 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 46 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 46 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 57 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 65 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -