如题。
#define ll long long
#include<bits/stdc++.h>
using namespace std;
struct node{
string name;
ll score;
}a[100005];
string nam;
ll n,lx,head=1,tail,scor;
void cr(string na,int sco)
{
if(head<=tail)
{
int f=1;
for(int i=head;i<=tail;i++)
if(a[i].name==na)
{
a[i].score=sco,f=0;
break;
}
if(f)
a[++tail].name=na,a[tail].score=sco;
}
else
a[++tail].name=na,a[tail].score=sco;
cout<<"OK"<<endl;
}
void cx(string na)
{
bool f=1;
if(head<=tail)
{
for(int i=head;i<=tail;i++)
if(a[i].name==na)
{
cout<<a[i].score;
f=0;
}
if(f) cout<<"Not found"<<endl;
}
else
cout<<"Not found"<<endl;
}
void sc(string na)
{
if(head<tail)
{
bool f=1;
for(int i=head;i<=tail;i++)
if(a[i].name==na)
{
swap(a[i],a[head]);
head++;cout<<"Deleted successfully"<<endl;
f=0;break;
}
if(f) cout<<"Not found"<<endl;
}
else if(tail==head)
if(a[head].name==na)
{
head++;
cout<<"Deleted successfully"<<endl;
}
else
cout<<"Not found"<<endl;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>lx;
if(lx==1)
{
cin>>nam>>scor;
cr(nam,scor);
}
if(lx==2)
{
cin>>nam;
cx(nam);
}
if(lx==3)
{
cin>>nam;
sc(nam);
}
if(lx==4)
cout<<tail-head+1;
}
return 0;
}