Submission #107137

#TimeUsernameProblemLanguageResultExecution timeMemory
107137hamzqq9Lamps (JOI19_lamps)C++14
100 / 100
142 ms43520 KiB
#include<bits/stdc++.h> #define st first #define nd second #define pb push_back #define pf push_front #define ppb pop_back #define ppf pop_front #define umax(x,y) x=max(x,y) #define umin(x,y) x=min(x,y) #define ll long long #define ii pair<int,int> #define iii pair<ii,int> #define iiii pair<ii,ii> #define sz(x) ((int) x.size()) #define orta ((bas+son)/2) #define all(x) x.begin(),x.end() #define pw(x) (1<<(x)) #define inf 1000000009 #define MOD 1000000007 #define N 1000005 #define M 100000 #define LOG 20 #define KOK 300 #define EPS 0.0000001 using namespace std; int n; int dp[N][5][2]; char a[N],b[N]; void tr(int ind,int sit,int fp) { for(int fl=0;fl<2;fl++) { int fc=(fp && !fl); if(sit<4) { umin(dp[ind][sit][fp],dp[ind-1][sit][fl]+fc); umin(dp[ind][sit][fp],dp[ind-1][3-sit][fl]+fc+(sit&1)); if(!(sit&1)) umin(dp[ind][sit][fp],dp[ind-1][4][fl]+fc+1); } else { for(int j=0;j<5;j++) umin(dp[ind][sit][fp],dp[ind-1][j][fl]+fc); } } } int main() { scanf("%d",&n); scanf("%s %s",a+1,b+1); for(int i=0;i<=n;i++) { for(int j=0;j<5;j++) { for(int k=0;k<2;k++) { dp[i][j][k]=inf; } } } dp[0][4][0]=0; for(int i=1;i<=n;i++) { for(int j=0;j<2;j++) tr(i,j,b[i]-'0'); for(int j=2;j<4;j++) tr(i,j,1-b[i]+'0'); tr(i,4,a[i]!=b[i]); } int ans=inf; for(int i=0;i<5;i++) for(int j=0;j<2;j++) umin(ans,dp[n][i][j]); printf("%d",ans); }

Compilation message (stderr)

lamp.cpp: In function 'int main()':
lamp.cpp:57:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
lamp.cpp:59:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s %s",a+1,b+1);
  ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...