제출 #1315612

#제출 시각아이디문제언어결과실행 시간메모리
1315612aren_danceBliskost (COI23_bliskost)C++20
100 / 100
131 ms16584 KiB
#include <bits/stdc++.h> using namespace std; const int N=6e5+1; #define ll long long vector<int> d; int cur=0; string quary(string a,string b){ vector<int> u,v; u.resize(a.size()); v.resize(b.size()); d.resize(b.size()); int n=a.size(); for(int i=0;i<n;++i){ u[i]=a[i]-'a'; v[i]=b[i]-'a'; d[i]=(a[i]-b[i]+26)%26; } ll g=d[n-1]; for(int i=1;i<n;++i){ if(i%2==1){ cur+=d[i]; } else{ cur-=d[i]; } } for(int i=n-2;i>=1;--i){ g=(d[i]-g+26)%26; } if(g==d[0]){ return "da"; } return "ne"; } int main() { ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL); int n,q; cin>>n>>q; string a,b; cin>>a>>b; cout<<quary(a,b)<<'\n'; while(q--){ int p;char c; cin>>p>>c; a[p-1]=c; if(p!=1){ if((p-1)%2==1){ cur-=d[(p-1)]; } else{ cur+=d[(p-1)]; } } int e=c-'a'; int f=b[p-1]-'a'; d[(p-1)]=(e-f+26)%26; if(p!=1){ if((p-1)%2==0){ cur-=d[(p-1)]; } else{ cur+=d[(p-1)]; } } if((cur+26000000)%26==d[0]){ cout<<"da"<<'\n'; } else{ cout<<"ne"<<'\n'; } } return 0; }
#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...