Submission #1351042

#TimeUsernameProblemLanguageResultExecution timeMemory
1351042StefanSebezLamps (JOI19_lamps)C++20
100 / 100
28 ms22072 KiB
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ll long long
#define ld long double
#define mp make_pair
const int N=1e6+50,inf=1e9;
int n,a[N],b[N],dp[N][3];
int main(){
    scanf("%i",&n);
    string s,t;cin>>s>>t;
    for(int i=1;i<=n;i++)a[i]=s[i-1]-'0';
    for(int i=1;i<=n;i++)b[i]=t[i-1]-'0';
    dp[0][0]=dp[0][1]=inf;
    for(int i=1;i<=n+1;i++){
        dp[i][0]=min(dp[i-1][0]+(b[i-1]^b[i]),dp[i-1][2]+2+(a[i-1]^b[i-1]^b[i]));
        dp[i][1]=min(dp[i-1][1]+(b[i-1]^b[i]),dp[i-1][2]+2+(a[i-1]^b[i-1]^1^b[i]));
        dp[i][2]=min({dp[i-1][0]+(b[i-1]^a[i]^b[i]),dp[i-1][1]+(1^b[i-1]^a[i]^b[i]),dp[i-1][2]+(a[i-1]^b[i-1]^a[i]^b[i])});
    }
    int res=dp[n+1][2]/2;
    printf("%i\n",res);
    return 0;
}

Compilation message (stderr)

lamp.cpp: In function 'int main()':
lamp.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     scanf("%i",&n);
      |     ~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...