比赛 |
20241023 |
评测结果 |
TTAWWWWWWWWWTTTTTTTT |
题目名称 |
Cowreography |
最终得分 |
5 |
用户昵称 |
darkMoon |
运行时间 |
19.770 s |
代码语言 |
C++ |
内存使用 |
4.52 MiB |
提交时间 |
2024-10-23 11:12:28 |
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
auto IN = freopen("cowreography.in", "r", stdin);
auto OUT = freopen("cowreography.out", "w", stdout);
auto mread = [](){int x;scanf("%lld", &x);return x;};
const int N = 1e6 + 5;
int n = mread(), m = mread(), ans = 0;
char s[N], t[N];
signed main(){
scanf("%s", s + 1);
scanf("%s", t + 1);
for(int i = 1; i <= n; i ++){
if(s[i] == '1' && t[i] == '0'){
int mi = LONG_LONG_MAX;
for(int j = i + 1; j <= n; j ++){
if(s[j] == '0' && t[j] == '1'){
mi = (j - i + m - 1) / m;
break;
}
}
for(int j = min(n, i + mi * m); j > i; j --){
if(s[j] == '0' && t[j] == '1'){
swap(s[i], s[j]);
break;
}
}
ans += mi;
}
else if(s[i] == '0' && t[i] == '1'){
int mi = LONG_LONG_MAX;
for(int j = i + 1; j <= n; j ++){
if(s[j] == '1' && t[j] == '0'){
mi = (j - i + m - 1) / m;
break;
}
}
for(int j = min(n, i + mi * m); j > i; j --){
if(s[j] == '1' && t[j] == '0'){
swap(s[i], s[j]);
break;
}
}
ans += mi;
}
}
printf("%lld", ans);
return 0;
}