Submission #1367294

#TimeUsernameProblemLanguageResultExecution timeMemory
1367294domiBliskost (COI23_bliskost)C++20
100 / 100
100 ms13212 KiB
#include <bits/stdc++.h>

#define int long long
#define fi first
#define se second

#define sz(a) (int)((a).size())
#define all(a) (a).begin(), (a).end()

#define lsb(x) (x & (-x))
#define vi vector<int>
#define YES { cout << "YES" << endl; return; }
#define NO { cout << "NO" << endl; return; }

using ll = long long;
using pii = std::pair<int, int>;

const int NMAX = 1e6;

using namespace std;

char a[NMAX + 5], b[NMAX + 5], ch;
int contrib[NMAX + 5], n, q;

signed main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    cin >> n >> q;

    for (int i = 1; i <= n; ++i)
        cin >> a[i];

    for (int i = 1; i <= n; ++i)
        cin >> b[i];

    int S = 0;
    for (int i = 1; i <= n; ++i) {
        contrib[i] = (b[i] - a[i] + 26) % 26;
        S = (S + (i % 2 == 1 ? 1 : -1) * contrib[i] + 26) % 26;
    }

    cout << (S == 0 ? "da\n" : "ne\n");
    for (int i = 0, p; i < q; ++i) {
        cin >> p >> ch;
        S = (S - (p % 2 == 1 ? 1 : -1) * contrib[p] % 26 + 26) % 26;
        a[p] = ch;
        contrib[p] = (b[p] - a[p] + 26) % 26;
        S = (S + (p % 2 == 1 ? 1 : -1) * contrib[p] % 26 + 26) % 26;
        cout << (S == 0 ? "da\n" : "ne\n");
    }
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...