Submission #1237717

#TimeUsernameProblemLanguageResultExecution timeMemory
1237717qrnBliskost (COI23_bliskost)C++20
100 / 100
117 ms5904 KiB
#include "bits/stdc++.h"
using namespace std;

#define SPEED ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL);
#define pb push_back
#define fi first
#define se second

#define endl "\n"
#define ALL(x) x.begin(), x.end()
#define sz(x) x.size()
#define intt long long
// #define intt int

const intt mod = 1e9 + 7;
const intt mxN = 4e5 + 5;
const intt inf = 1e18 + 10;

intt dis(char a, char b) {
	intt A = a - 96;
	intt B = b - 96;
	if(A <= B) return B - A;
	return 26 - A + B;
}

void solve() {
	intt N, Q;
	string a, b;
	cin >> N >> Q >> a >> b;
	intt e = 0, o = 0;
	for(intt i = 0; i < N; i++) {
		intt l = dis(a[i], b[i]);
		if(i % 2 == 0) e += l;
		else o += l;
	}
	if(e % 26 == o % 26) {
			cout << "da" << endl;
		} else {
			cout << "ne" << endl;
		}

	while(Q--) {
		intt p;
		char c;
		cin >> p >> c;
		--p;
		if(p % 2 == 0) e -= dis(a[p], b[p]);
		else o -= dis(a[p], b[p]);

		a[p] = c;
		if(p % 2 == 0) e += dis(a[p], b[p]);
		else o += dis(a[p], b[p]);
		if(e % 26 == o % 26) {
			cout << "da" << endl;
		} else {
			cout << "ne" << endl;
		}
	}
}

signed main() {
	SPEED;
	intt tst = 1;
  	// cin >> tst;
    	while (tst--) {
        	solve();
    	}
}


/*
	p00000
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...