100952024-03-26 18:12:47111Génsebészcpp17Elfogadva 100/100195ms30548 KiB
#pragma GCC optimize("Ofast")

#ifdef ONLINE_JUDGE
#include "grader.h"
#endif

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;

template<typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

template<typename T, typename V>
using ordered_map = tree<T, V, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

ordered_map<double,char>s;
ordered_set<double>z[200];

void Kezd(string S){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int n=S.size();
	s[-1]=0;
	for(int i=0;i<n;i++){
		s[1e9*i/n]=S[i];
		z[S[i]].insert(1e9*i/n);
	}
	s[1e9]=0;
}

void Beszur(int i,char x){
	auto it=s.find_by_order(i);
	double y=(it->first+next(it)->first)/2;
	s[y]=x;
	z[x].insert(y);
}

void Mutal(int i,char x){
	auto it=s.find_by_order(i);
	double y=it->first;
	z[it->second].erase(y);
	s[y]=x;
	z[x].insert(y);
}

void Kivag(int i,int j){
	auto it1=s.find_by_order(i);
	auto it2=s.find_by_order(j+1);
	while(it1!=it2){
		z[it1->second].erase(it1->first);
		it1=s.erase(it1);
	}
}

int Szamlal(int i,int j,char x){
	auto it1=s.find_by_order(i);
	auto it2=s.find_by_order(j+1);
	return z[x].order_of_key(it2->first)-z[x].order_of_key(it1->first);
}

string Eredmeny(){
	string ans;
	ans.reserve(s.size()-2);
	for(auto [_,x]:s){
		if(x==0)continue;
		ans+=x;
	}
	return ans;
}

#ifndef ONLINE_JUDGE
int main(){
	freopen("be2.txt","r",stdin);
	string S;
	cin>>S;
	Kezd(S);
	while(true){
		int o;
		cin>>o;
		if(o==0){
			break;
		}
		if(o==1){
			int i;
			char x;
			cin>>i>>x;
			Beszur(i,x);
		}
		if(o==2){
			int i;
			char x;
			cin>>i>>x;
			Mutal(i,x);
		}
		if(o==3){
			int i,j;
			cin>>i>>j;
			Kivag(i,j);
		}
		if(o==4){
			int i,j;
			char x;
			cin>>i>>j>>x;
			int res=Szamlal(i,j,x);
			int ans;
			cin>>ans;
			ans--;
			if(res!=ans){
				cout<<"got "<<res<<'\n';
				cout<<"exp "<<ans<<'\n';
				return 1;
			}
		}
		if(o==5){
			string res=Eredmeny();
			string ans;
			cin>>ans;
			ans.pop_back();
			if(res!=ans){
				cout<<"got "<<res<<'\n';
				cout<<"exp "<<ans<<'\n';
				return 1;
			}
		}
	}
	return 0;
}
#endif
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2052 KiB
2Elfogadva3ms2632 KiB
subtask230/30
3Elfogadva3ms2616 KiB
4Elfogadva3ms2832 KiB
5Elfogadva3ms2796 KiB
6Elfogadva3ms2816 KiB
7Elfogadva4ms3272 KiB
8Elfogadva50ms10964 KiB
subtask330/30
9Elfogadva3ms3400 KiB
10Elfogadva3ms3636 KiB
11Elfogadva3ms3872 KiB
12Elfogadva4ms4096 KiB
13Elfogadva4ms4516 KiB
14Elfogadva72ms14460 KiB
subtask420/20
15Elfogadva3ms4192 KiB
16Elfogadva3ms4208 KiB
17Elfogadva3ms4224 KiB
18Elfogadva3ms4488 KiB
19Elfogadva93ms17492 KiB
subtask520/20
20Elfogadva4ms5380 KiB
21Elfogadva6ms5832 KiB
22Elfogadva7ms6060 KiB
23Elfogadva13ms7352 KiB
24Elfogadva195ms30548 KiB