10086 2024. 03. 26 17:48:34 111 Génsebész cpp17 Hibás válasz 30/100 273ms 30240 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]=S[i];
		z[S[i]].insert(i);
	}
	s[n]=0;
}

void Beszur(int i,char x){
	auto it=s.find_by_order(i);
	double y=(it->first+next(it)->first)/2;
	if(s.find(y)!=s.end())exit(1);
	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 1836 KiB
2 Elfogadva 3ms 2248 KiB
subtask2 30/30
3 Elfogadva 3ms 2384 KiB
4 Elfogadva 3ms 2468 KiB
5 Elfogadva 4ms 2788 KiB
6 Elfogadva 4ms 2808 KiB
7 Elfogadva 6ms 3188 KiB
8 Elfogadva 74ms 10716 KiB
subtask3 0/30
9 Hibás válasz 3ms 3276 KiB
10 Hibás válasz 3ms 3268 KiB
11 Hibás válasz 3ms 3472 KiB
12 Hibás válasz 3ms 3700 KiB
13 Hibás válasz 3ms 4044 KiB
14 Elfogadva 101ms 14216 KiB
subtask4 0/20
15 Hibás válasz 3ms 3876 KiB
16 Hibás válasz 3ms 3896 KiB
17 Hibás válasz 3ms 3916 KiB
18 Hibás válasz 3ms 4180 KiB
19 Elfogadva 127ms 16904 KiB
subtask5 0/20
20 Hibás válasz 4ms 4988 KiB
21 Hibás válasz 6ms 5292 KiB
22 Hibás válasz 7ms 5760 KiB
23 Hibás válasz 12ms 7032 KiB
24 Időlimit túllépés 273ms 30240 KiB