제출 #1182876

#제출 시각아이디문제언어결과실행 시간메모리
1182876WarinchaiLamps (JOI19_lamps)C++20
100 / 100
81 ms26008 KiB
#include<bits/stdc++.h> using namespace std; int dp[1000005][3][2]; int inf=1e9; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n;cin>>n; string a,b;cin>>a>>b; for(int i=0;i<=n;i++)for(int j=0;j<3;j++)for(int k=0;k<2;k++)dp[i][j][k]=inf; dp[0][2][0]=0; for(int i=1;i<=n;i++){ for(int j=0;j<3;j++)for(int k=0;k<3;k++)for(int l=0;l<2;l++)for(int m=0;m<2;m++){ int cur=a[i]; cur=a[i-1]-'0'; if(k!=2)cur=k; if(m)cur^=1; if(cur!=b[i-1]-'0')continue; int cost=(j!=k&&k!=2)+(m>l); dp[i][k][m]=min(dp[i][k][m],dp[i-1][j][l]+cost); //if(dp[i-1][j][l]+cost<inf)cerr<<"from"<<i-1<<","<<j<<" "<<l<<" to: "<<k<<" "<<m<<":"<<dp[i-1][j][l]+cost<<"\n"; } } int ans=inf; for(int j=0;j<3;j++)for(int k=0;k<2;k++)ans=min(ans,dp[n][j][k]); cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...