10088 2024. 03. 26 17:51:50 111 Génsebész cpp17 Hibás válasz 30/100 101ms 30128 KiB
#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){
	int n=S.size();
	s[-1]=0;
	for(int i=0;i<n;i++){
		s[i*n]=S[i];
		z[S[i]].insert(i*n);
	}
	s[n*n]=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);
	int 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;
	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 Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1960 KiB
2 Elfogadva 3ms 2436 KiB
subtask2 30/30
3 Elfogadva 3ms 2548 KiB
4 Elfogadva 3ms 2740 KiB
5 Elfogadva 4ms 3212 KiB
6 Elfogadva 4ms 3180 KiB
7 Elfogadva 6ms 3452 KiB
8 Elfogadva 75ms 10996 KiB
subtask3 0/30
9 Elfogadva 3ms 3692 KiB
10 Hibás válasz 3ms 3800 KiB
11 Elfogadva 4ms 4004 KiB
12 Hibás válasz 4ms 3980 KiB
13 Elfogadva 6ms 4192 KiB
14 Elfogadva 101ms 14164 KiB
subtask4 0/20
15 Hibás válasz 3ms 3968 KiB
16 Hibás válasz 3ms 3928 KiB
17 Hibás válasz 3ms 4260 KiB
18 Hibás válasz 3ms 4424 KiB
19 Hibás válasz 52ms 17192 KiB
subtask5 0/20
20 Hibás válasz 4ms 5440 KiB
21 Hibás válasz 6ms 5772 KiB
22 Hibás válasz 7ms 6028 KiB
23 Hibás válasz 12ms 7308 KiB
24 Hibás válasz 93ms 30128 KiB