Submission #1284246

#TimeUsernameProblemLanguageResultExecution timeMemory
1284246hssaan_arifBliskost (COI23_bliskost)C++20
28 / 100
11 ms2928 KiB
#include <bits/stdc++.h> using namespace std; #define endl "\n" #define pb push_back #define int long long const int N = 1e6 + 5, M = 26, 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 == sum){ cout << "da" << endl; }else{ cout << "ne" << endl; } while(q--){ cin >> i >> x; k += (((x - 'a') - (s[i-1] - 'a'))%M + M)%M; k %= M; 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 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...