Submission #900129

# Submission time Handle Problem Language Result Execution time Memory
900129 2024-01-07T17:42:27 Z JakobZorz Linear Garden (IOI08_linear_garden) C++17
40 / 100
1500 ms 49476 KB
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<algorithm>
#include<limits.h>
#include<math.h>
#include<map>
#include<set>
#include<unordered_map>
#include<unordered_set>
#include<iomanip>
#include<cstring>
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
using namespace std;
//const int MOD=1e9+7;
//typedef pair<ll,ll>Point;
//typedef pair<ll,ll>Line;
//#define x first
//#define y second
 
ll MOD;
int n;
string str;

ll get(int i,int pref,int min_pref,int max_pref){
    min_pref=min(min_pref,pref);
    max_pref=max(max_pref,pref);
    if(max_pref-min_pref>2)
        return 0;
    
    if(i==n)
        return 1;
    
    return (get(i+1,pref+1,min_pref,max_pref)+get(i+1,pref-1,min_pref,max_pref))%MOD;
}

void solve(){
    cin>>n>>MOD>>str;
    int pref=0,min_pref=0,max_pref=0;
    ll res=1;
    for(int i=0;i<n;i++){
        if(str[i]=='P'){
            res+=get(i+1,pref-1,min_pref,max_pref);
            res%=MOD;
            pref++;
        }else{
            pref--;
        }
        
        min_pref=min(min_pref,pref);
        max_pref=max(max_pref,pref);
    }
    cout<<res<<"\n";
}
 
int main(){
    ios::sync_with_stdio(false);cout.tie(NULL);cin.tie(NULL);
    //freopen("bank.in","r",stdin);freopen("bank.out","w",stdout);
    int t=1;//cin>>t;
    while(t--)solve();
    return 0;
}

/*
 
14:
 
LLPLP
LLPPL
LPLLP
LPLPL
LPLPP
LPPLL
LPPLP
PLLPL
PLLPP
PLPLL
PLPLP
PLPPL
PPLLP
PPLPL
 
5 7 PLPPL
 
12 10000 LPLLPLPPLPLL
 
 */
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 456 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 452 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 37 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1565 ms 348 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1541 ms 348 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1567 ms 348 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1540 ms 1372 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1552 ms 1368 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1549 ms 3356 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1518 ms 3928 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1524 ms 15596 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1557 ms 20208 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1540 ms 25528 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1560 ms 30968 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1516 ms 49476 KB Time limit exceeded
2 Halted 0 ms 0 KB -