Submission #1319288

#TimeUsernameProblemLanguageResultExecution timeMemory
1319288WH8Bliskost (COI23_bliskost)C++17
0 / 100
0 ms332 KiB
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pll pair<long long, long long>
#define mp make_pair
#define pb push_back
#define f first
#define s second
#define endl '\n'
#define ld long double
#define sz(x) static_cast<int>((x).size())
#define i5 tuple<int,int,int,int,int>
#define all(x) x.begin(), x.end()
#define iiii tuple<int, int,int,int>
#define ld long double
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>

signed main(){
	int n,q;cin>>n>>q;
	vector<int> a(n+2, 0), b(n+2, 0);
	for(int i=1;i<=n;i++){
		char c;cin>>c;
		a[i]=c-'a'+1;
	}
	for(int i=1;i<=n;i++){
		char c;cin>>c;
		b[i]=c-'a'+1;
	}
	array<int,2> sum{0, 0};
	auto ev=[&](int i)->int{
		int ret=b[i+1]-b[i]-(a[i+1]-a[i]);
		//printf("ev %lld is %lld\n", i, ret);
		return ret;
	};
	for(int i=0;i<=n;i++){
		sum[i%2] += ev(i);
	}
	if(sum[0]==0 and sum[1]==0) cout<<"da\n";
	else cout<<"ne\n";
	for(int i=0;i<q;i++){
		int p, nv;cin>>p;
		char c;cin>>c;nv=c-'a'+1;
		sum[p%2] -= ev(p);
		sum[(p-1)%2] -= ev(p-1);
		//printf("sum 1 %lld sum 0 %lld\n", sum[1], sum[0]);
		a[p]=nv;
		sum[p%2] += ev(p);
		sum[(p-1)%2] += ev(p-1);
		//printf("sum 1 %lld sum 0 %lld\n", sum[1], sum[0]);
		if(sum[0]==0 and sum[1]==0)cout<<"da\n";
		else cout<<"ne\n";
	}
}
#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...