比赛 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;
}