제출 #423515

#제출 시각아이디문제언어결과실행 시간메모리
423515Bill_00Linear Garden (IOI08_linear_garden)C++14
70 / 100
181 ms65540 KiB
#include <bits/stdc++.h> #define pb push_back #define pp push #define ff first #define ss second #define ll long long #define mp make_pair using namespace std; unordered_map<long long,unordered_map<long long,unordered_map<long long,long long> > >u; char s[2000000]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n,m; cin >> n >> m; for(int i=0;i<n;i++) cin >> s[i]; u[0][0][0]=1; for(int i=1;i<=n;i++){ int o=0; u[i][2][0]=(u[i-1][1][0]+u[i-1][1][-1])%m; u[i][2][-1]=u[i-1][1][-2]; u[i][1][0]=(u[i-1][0][0]+u[i-1][0][-1])%m; u[i][1][-1]=(u[i-1][2][0]+u[i-1][0][-2])%m; u[i][1][-2]=u[i-1][2][-1]; u[i][0][-1]=(u[i-1][0][0]+u[i-1][1][0])%m; u[i][0][-2]=(u[i-1][0][-1]+u[i-1][1][-1])%m; } int mx=0,mn=0; long long ans=0; for(int i=0;i<n-1;i++){ if(s[i]=='L'){ mx+=1; mn=min(mn+1,0); continue; } int mx_=mx+1; int mn_=min(mn+1,0); for(int j=0;j<=2-mx_;j++){ for(int k=0;k>=-2-mn_;k--){ ans=(ans+u[n-i-1][j][k])%m; //cout << n-i-1 << ' ' << j << ' ' << k << ' ' << u[n-i-1][j][k] << endl; } } mx=max(0,mx-1); mn--; } if(s[n-1]=='P'){ if(mx!=2) ans++; } ans++; cout << ans%m; }

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

linear_garden.cpp: In function 'int main()':
linear_garden.cpp:20:7: warning: unused variable 'o' [-Wunused-variable]
   20 |   int o=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...