#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define pb push_back
#define int long long
const int N = 1e6 + 5, M = 1e9 + 7, LG = 20;
int n , F[N] , i , q;
string s , t;
char x;
void add(int i , int x){
while(i <= n){
F[i] += x;
i += (i&(-i));
}
}
int prep(int i){
int sum = 0;
while(i >= 0){
sum += F[i];
if (!i) break;
i -= (i&(-i));
}
return sum;
}
void solve(){
cin >> n >> q >> s >> t;
if (n){
int k = s[n-1] - 'a';
for (int i = n-2 ; i >=0 ; i--){
// cout << k << ' ';
k = (s[i] - 'a') + 25 - k;
// k %= 26;
// if (i&1) add(i+1 , -(s[i] - 'a' + 1));
// else add(i+1 , s[i] - 'a' + 1);
}
int sum = t[n-1] - 'a';
for (int i = n-2 ; i >= 0 ; i--){
sum = (t[i] - 'a') + 25 - sum;
// sum %= 26;
}
// cout << k << ' ' << sum << endl;
if (k%26 == sum%26){
cout << "da" << endl;
}else{
cout << "ne" << endl;
}
while(q--){
cin >> i >> x;
s[i-1] = x;
int k = s[n-1] - 'a' + 1;
for (int i = n-2 ; i >=0 ; i--){
// cout << k << ' ';
k = (s[i] - 'a' + 1) + 26 - k;
k %= 27;
k++;
// if (i&1) add(i+1 , -(s[i] - 'a' + 1));
// else add(i+1 , s[i] - 'a' + 1);
}
if (k == sum){
cout << "da" << endl;
}else{
cout << "ne" << endl;
}
// if (i&1) add(i , (x - 'a' + 1) - (s[i-1] - 'a' + 1));
// else add(i , -(x - 'a' + 1) + (s[i-1] - 'a' + 1));
// // cout << prep(n) << ' ' << sum << endl;
// if (prep(n) % 26 == sum % 26){
// cout << "da" << endl;
// }else{
// cout << "ne" << endl;
// }
}
}else{
for (int i = 0 ; i < n ; i++){
if (i&1) add(i+1 , (s[i] - 'a' + 1));
else add(i+1 , -(s[i] - 'a' + 1));
}
int sum = 0;
for (int i = 0 ; i < n ; i++){
if (i&1){
sum += t[i] - 'a' + 1;
}else{
sum -= t[i] - 'a' + 1;
}
}
if (prep(n) % 26 == sum % 26){
cout << "da" << endl;
}else{
cout << "ne" << endl;
}
while(q--){
cin >> i >> x;
if (i&1) add(i , -(x - 'a' + 1) + (s[i-1] - 'a' + 1));
else add(i , (x - 'a' + 1) - (s[i-1] - 'a' + 1));
if (prep(n) == sum){
cout << "da" << endl;
}else{
cout << "ne" << endl;
}
}
}
}
signed main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int ts = 1;
// cin >> ts;
while(ts--){
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |