제출 #1026595

#제출 시각아이디문제언어결과실행 시간메모리
1026595vjudge1Bliskost (COI23_bliskost)C++17
28 / 100
13 ms19972 KiB
#pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx,avx2,fma") #include <bits/stdc++.h> using namespace std; #define int long long #define OYY LLONG_MAX #define mod 998244353 #define faster ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); #define FOR for(int i=1;i<=n;i++) #define mid (start+end)/2 #define lim 1000005 #define fi first #define se second int dizi[lim]; int pre[lim]; int32_t main(){ faster int n,q;cin>>n>>q; string a,b;cin>>a>>b; int bir=0,iki=0; FOR{ dizi[i]=b[i-1]-a[i-1]; if(i&1)bir+=dizi[i]; else iki+=dizi[i]; } FOR{ if(i==1)continue; if(i==2){ pre[i]=dizi[i]-dizi[i-1]; pre[i]=(pre[i]+26)%26; continue; } pre[i]=dizi[i]-pre[i-1]; pre[i]=(pre[i]+26)%26; } if(n==1 && a!=b){ cout<<"ne"<<'\n'; return 0; } else if(n==1 && a==b){ cout<<"da"<<'\n'; return 0; } if(pre[n]==0){ cout<<"da"<<'\n'; } else cout<<"ne"<<'\n'; while(q--){ int pos;char c; cin>>pos>>c; if(n==1){ a=c; if(a==b){ cout<<"da"<<'\n'; } else{ cout<<"ne"<<'\n'; } continue; } a[pos-1]=c; if(pos&1){ bir-=dizi[pos]; dizi[pos]=b[pos-1]-a[pos-1]; bir+=dizi[pos]; } else{ iki-=dizi[pos]; dizi[pos]=b[pos-1]-a[pos-1]; iki+=dizi[pos]; } if(bir==iki){ 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...