以下代码的理论时间复杂度是多少?
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
const int MAXN=100005;
int y[MAXN],p[MAXN];
struct City {
int y,id;
};
vector<City>a[MAXN];
bool cmp(City a,City b) {
return a.y<b.y;
}
int find_city(int p,int id) {
int len=a[p].size();
for(int i=0;i<len;i++)
if(a[p][i].id==id)
return i+1;
return -1;
}
int main() {
//freopen("b.in","r",stdin);
//freopen("b.out","w",stdout);
int n,m;
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++) {
scanf("%d %d",&p[i],&y[i]);
a[p[i]].push_back((City){y[i],i});
}
for(int i=1;i<=n;i++)
sort(a[i].begin(),a[i].end(),cmp);
for(int i=1;i<=m;i++)
printf("%06d%06d\n",p[i],find_city(p[i],i));
return 0;
}