S组T3性质ABC 0pts求Hack
  • 板块学术版
  • 楼主ICU152_lowa_IS8
  • 当前回复10
  • 已保存回复10
  • 发布时间2023/10/22 18:58
  • 上次更新2023/10/22 19:18:30
查看原帖
S组T3性质ABC 0pts求Hack
933802
ICU152_lowa_IS8楼主2023/10/22 18:58
#include<bits/stdc++.h>
using namespace std;
struct node{
	string in,name;
};
struct Node{
	vector<node> vt;
	int dq,siz;
};
map<string,Node>mp;
map<string,string>fnode;
string dz[100005];
int nowdz=-1;
int main(){
//	freopen("struct.in","r",stdin);
//	freopen("struct.out","w",stdout);
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		int op;
		cin>>op;
		if(op==1){
			string a;
			int k;
			cin>>a>>k;
			int cnt=0;
			for(int i=1;i<=k;i++){
				string s,name;
				cin>>s>>name;
				mp[a].vt.push_back((node){
					s,name
				});
				if(s=="byte")cnt=max(cnt,1);
				else if(s=="short")cnt=max(cnt,2);
				else if(s=="long")cnt=max(cnt,8);
				else if(s=="int")cnt=max(cnt,4);
				else cout<<"RNF"<<a[-114514];
			}
			mp[a].dq=cnt;
			mp[a].siz=k*cnt;
			cout<<cnt*k<<" "<<cnt<<endl;
		}
		else if(op==2){
			string t,n;
			cin>>t>>n;
			fnode[n]=t;
			cout<<nowdz+1<<endl;
			if(t=="byte"||t=="short"||t=="int"||t=="long"){
				int rnf=0;
				if(t=="byte")rnf=1;
				else if(t=="short")rnf=2;
				else if(t=="int")rnf=4;
				else if(t=="long")rnf=8;
				for(int j=1;j<=rnf;j++){
					dz[++nowdz]=t;
				}
			}
			int sz=mp[t].vt.size();
			for(int i=0;i<sz;i++){
				int rnf=0;
				if(mp[t].vt[i].in=="byte")rnf=1;
				else if(mp[t].vt[i].in=="short")rnf=2;
				else if(mp[t].vt[i].in=="int")rnf=4;
				else if(mp[t].vt[i].in=="long")rnf=8;
				else cout<<"RNF"<<mp[t].vt[i].in[-114514];
				for(int j=1;j<=rnf;j++){
					string use=n;
					use+=".";
					use+=mp[t].vt[i].name;
					dz[++nowdz]=use;
				}
				for(int i=rnf+1;i<=mp[t].dq;i++){
					dz[++nowdz]="ERR";
				}
			}
			
		}
		else if(op==3){
			string s;
			cin>>s;
			for(int i=0;i<=nowdz;i++){
				if(dz[i]==s){
					cout<<i<<endl;
					break;
				}
			}
		}
		else{
			long long x;
			cin>>x;
			if(x>nowdz){
				cout<<"ERR\n";
			}
			else{
				cout<<dz[x]<<endl;
			}
		}
	}
	return 0;
}
2023/10/22 18:58
加载中...