1.利用下标和值直接定义b[n]数组
2.如果加入有相同的想到b[n]的二维数组
3.很蠢的问题
ans定义的位置不一样因为每次答案都不样啊,仔细分析一下。。。。
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+10;
vector<int>b[N];
signed main(){ios::sync_with_stdio(0);cout.tie(0);cin.tie(0);int x,n;cin>>n;for(int i=1;i<=n;i++){cin>>x;b[i].push_back(x);}int step,op,a1,b1,goal;cin>>step;while(step--){cin>>op;if(op==0){cin>>a1>>b1;b[a1].push_back(b1);}else{int ans=1e8;cin>>goal;int l=max((int)1,goal-(int)sqrt(n)-1);int r=min(n,goal+(int)sqrt(n)+1);for(int i=l;i<=r;i++){for(int j=0;j<b[i].size();j++){ans=min(ans,(goal-i)*(goal-i)+b[i][j]);}}cout<<ans<<endl;}}return 0;
}