This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define ll long long
#define int long long int
#define endl '\n'
#define N 150100
#define M 15
#define big 2147483647
#define bigg 9223372036854775807
#define pb push_back
#define p push
#define ins insert
#define f first
int farr(char a,char b){ //(a->b yol)
if(a==b)return 0;
if((int)a<(int)b) return ((int)b-(int)a);
return (int)b-'a'+(int)('z'-a)+1;
}
int indir(int x,int y){
while(y--){
if(x==0)x=M-1;
else x--;
}
return x;
}
signed main(){
lalala;
int n,q;cin>>n>>q;
string str,hedef;cin>>str>>hedef;
string yedek=str;
for(int i=0;i<(int)yedek.size()-1;i++){
while(yedek[i]!=hedef[i]){
if(yedek[i]=='z')yedek[i]='a';
else yedek[i]++;
if(yedek[i+1]=='z')yedek[i+1]='a';
else yedek[i+1]++;
}
}
if(yedek[n-1]!=hedef[n-1])cout<<"ne"<<endl;
else cout<<"da"<<endl;
int son=yedek[n-1]-'a',hedefim=hedef[n-1]-'a';
while(q--){
int x;char a;cin>>x>>a;
x--;
int fark1=farr(str[x],hedef[x]), fark2=farr(a,hedef[x]);
str[x]=a;
int fark;
if(fark1>=fark2){
fark=fark1-fark2;
if(((x+1)%2)==(n%2))son=(son+fark)%M;
else son=indir(son,fark);
}
else{
fark=fark2-fark1;
if(((x+1)%2)==(n%2))son=indir(son,fark);
else son=(son+fark)%M;
}
//cout<<son<<" "<<fark1<<" "<<fark2<<" "<<fark<<endl;
if(son==hedefim) cout<<"da"<<endl;
else cout<<"ne"<<endl;
}
}
# | 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... |