제출 #219716

#제출 시각아이디문제언어결과실행 시간메모리
219716mohamedsobhi777Linear Garden (IOI08_linear_garden)C++14
0 / 100
54 ms65540 KiB
#include <bits/stdc++.h> using namespace std ; const int N = 1e6 + 7 ; long long n , mod , ans ; string s ; int mv2[2] = {0 , 1} , mv1[2] = {1 , 0} ; long long add (long long a , long long b){ return (a%mod + b%mod + mod) %mod ; } int dp[N][3][3][3]; void normalize(int &a , int &b , int &A , int &B){ int mn = min(a , b) ; a-=mn ; b-=mn; A = max( A , a - b ); B = max(B , b - a); } long long solve(int i , int ab , int A , int B){ int a = max(0 , ab-2) ; int b = max(0 , 2-ab) ; if(dp[i][ab][A][B]!=-1) return dp[i][ab][A][B] ; if( a + B > 2 || b + A > 2 ) return 0 ; if(i==n){ return 1 ; } long long ret = 0 ; for(int j = 0 ; j< 2 ;j++){ int na = a + mv1[j] ; int nb = b + mv2[j] ; int tmpA = A; int tmpB = B; int nab = na - nb + 2 ; if(nab <0 || nab > 4)continue ; normalize(na , nb , tmpA , tmpB) ; ret= add(ret , solve(i+1 , nab , tmpA , tmpB)) ; } return dp[i][ab][A][B] = ret ; } int main(){ memset(dp , -1 , sizeof dp) ; ios_base::sync_with_stdio(0) ; cin.tie(0) ; cin>>n>>mod ; cin>> s ; int a = 0, b =0; int A = 0, B = 0; int ab = 0 ; for(int i = 0 ;i < n;i++){ if(s[i] == 'L'){ b++ ; normalize(a , b , A , B) ; }else{ int tmpa = a ; int tmpb = b ; int tmpA = A ; int tmpB = B ; tmpb++ ; int nab = tmpa - tmpb +2 ; if(nab>=0 && nab<=4){ normalize(tmpa , tmpb , tmpA , tmpB) ; ans+=solve(i+1 , nab , tmpA , tmpB) ; } a++; normalize(a , b , A , B) ; } } cout<<add(ans , 1); return 0 ; }

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

linear_garden.cpp: In function 'int main()':
linear_garden.cpp:55:9: warning: unused variable 'ab' [-Wunused-variable]
     int ab = 0 ; 
         ^~
#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...