제출 #839309

#제출 시각아이디문제언어결과실행 시간메모리
839309serifefedartarBliskost (COI23_bliskost)C++17
100 / 100
134 ms19896 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define debug(x) {cout << #x << ": "; for (auto it : x) cout << it << " ";cout << endl;}
#define fast ios::sync_with_stdio(0);cin.tie(0);
typedef long long ll;
#define f first
#define s second
#define MOD 1000000007
#define LOGN 15
#define MAXN 100005
 
vector<int> diff;
int main() {
	fast
	int N, Q;
	string S, T;
	cin >> N >> Q >> S >> T;
	S = "#" + S;
	T = "#" + T;

	diff = vector<int>(N+1);
	int even = 0, odd = 0;
	for (int i = 1; i <= N; i++) {
		diff[i] = (T[i] - S[i] + 26) % 26;
		if (i % 2)
			odd += diff[i];
		else
			even += diff[i];
	}

	if (even % 26 == odd % 26)
		cout << "da\n";
	else
		cout << "ne\n"; 

 	while (Q--) {
 		int plc; char ch;
 		cin >> plc >> ch;
 		int last = diff[plc];
 		S[plc] = ch;
 		diff[plc] = (T[plc] - ch + 26) % 26;
 		if (plc % 2) {
 			odd += diff[plc] - last;
 			if (odd < 0)
 				odd += 26; 
 		} else {
 			even += diff[plc] - last;
 			if (even < 0)
 				even += 26;
 		}

 		if (even % 26 == odd % 26)
 			cout << "da\n";
 		else
 			cout << "ne\n"; 
 	}
}
#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...