PJ T2
考场代码:
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
int nev=1,num=0;
char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-')
nev=-1;
ch=getchar();
}
while(isdigit(ch))
{
num=(num<<1)+(num<<3)+(ch^48);
ch=getchar();
}
return num*nev;
}
int arr[8005],idx[8005],last[8005];
//原数组,原数组第i个元素在last的位置
int n,q;
int main()
{
freopen("sort.in","r",stdin);
freopen("sort.out","w",stdout);
cin>>n>>q;
for(int i=1; i<=n; i++)
arr[i]=read();
for(int i=1; i<=n; i++)
{
last[i]=arr[i];
idx[i]=i;
}
for(int i=1; i<=n; i++)
for(int j=i; j>=2; j--)
if(last[j]<last[j-1])
{
swap(last[j],last[j-1]);
swap(idx[j],idx[j-1]);
}
for(int k=1; k<=q; k++)
{
int op=read();
if(op==1)
{
int x=read(),y=read();
arr[x]=y;
for(int i=1; i<=n; i++)
{
last[i]=arr[i];
idx[i]=i;
}
for(int i=1; i<=n; i++)
for(int j=i; j>=2; j--)
if(last[j]<last[j-1])
{
swap(last[j],last[j-1]);
swap(idx[j],idx[j-1]);
}
}
else
{
int x=read();
for(int i=1; i<=n; i++)
if(idx[i]==x)
{
cout<<i<<'\n';
break;
}
}
}
return 0;
}
/*
3 4
3 2 1
2 3
1 3 2
2 2
2 3
*/
我是shab,都想到用这种方法做了为啥不加个结构体然后插排变 sort。。。
sort 72分,这玩意 52分。。。
快骂我,我竟然用了ccf提供的代码,我是shab
验证码dnmd祭