제출 #126391

#제출 시각아이디문제언어결과실행 시간메모리
126391TadijaSebezLamps (JOI19_lamps)C++11
0 / 100
1074 ms2696 KiB
#include <bits/stdc++.h> using namespace std; const int N=1000050; const int inf=1e9+7; char a[N],b[N]; int dp[N][2]; int main() { int n; scanf("%i",&n); scanf("%s",a+1); scanf("%s",b+1); dp[0][0]=0; dp[0][1]=inf; int best[2][2]; best[0][0]=1; best[0][1]=inf; best[1][0]=inf; best[1][1]=inf; for(int i=1;i<=n;i++) { if(a[i]!=b[i]) { dp[i][1]=min(dp[i-1][1],dp[i-1][0]+1); dp[i][0]=inf; } else { dp[i][1]=inf; dp[i][0]=min(dp[i-1][1],dp[i-1][0]); } /*if(b[i]!=b[i-1]) { swap(best[0][0],best[1][0]); best[0][0]++; swap(best[0][1],best[1][1]); best[0][1]++; } dp[i][1]=min(dp[i][1],min(best[0][1],best[1][1])); dp[i][0]=min(dp[i][0],min(best[0][0],best[1][0])); best[0][1]=min(best[0][1],dp[i][1]+1); best[0][0]=min(best[0][0],dp[i][0]+1);*/ char pre=0; int cnt=0; for(int j=i;j>=1;j--) { if(pre!=b[j]) cnt++; pre=b[j]; dp[i][1]=min(dp[i][1],dp[j-1][1]+cnt/2+1); dp[i][0]=min(dp[i][0],dp[j-1][0]+cnt/2+1); } } printf("%i\n",min(dp[n][0],dp[n][1])); return 0; }

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

lamp.cpp: In function 'int main()':
lamp.cpp:15:6: warning: variable 'best' set but not used [-Wunused-but-set-variable]
  int best[2][2];
      ^~~~
lamp.cpp:10:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%i",&n);
  ~~~~~^~~~~~~~~
lamp.cpp:11:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s",a+1);
  ~~~~~^~~~~~~~~~
lamp.cpp:12:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s",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...