您好,这段代码得不出正确结果哎

问题遇到的现象和发生背景

请您看看

问题相关代码,请勿粘贴截图
#include<bits/stdc++.h>
using namespace std;
int main(){
    int m,n;//n个桶,m个数字
    int a,b;
    int cnt[1000] = {0};
    int num1[1001] = {0};//数字
    int num2[1001] = {0};//桶
    vector<int> v[1001];
    cin>>n>>m;
    for(int i = 0; i < m; i++){
        cin>>num1[i];
        cin>>num2[i];
        v[num2[i]].push_back(num1[i]); //O(1)
        cnt[num2[i]]++;
    }// O(n)
    for(int i = 1; i <= n; i++){
        sort(v[i].begin(),v[i].begin()+cnt[i]); //O(nlogn)
        for(vector<int>::iterator it = v[i].begin();it!=v[i].end();it++) 
            cout<<*it<<" ";  //O(n)
        cout<<endl;
    }  //O(n^2*logn)
    return 0;
}
 

运行结果及报错内容

C : 桶装数字

问题描述

yhf有 n个桶,每个桶里都装着一些数字(一个或多个),所有的数字总共有 m个。这天,lzh把yhf所有的桶全打翻了,数字洒了一地!所幸,每个数字都有它所在的桶的标记。yhf希望恢复所有的桶,但是他还要刷考研题目,于是他请你来完成这个任务。 由于yhf能在一秒内完成一套考研数学题,因此他希望你的程序能在一秒内得出结果。

输入格式

第一行输入两个整数 n,m,第二行到第 m+1 行,每行两个整数 x,t,分别表示这个数字和它所在的桶。 保证每个桶至少含有一个数字。

输出格式

输出 n 行,若第 i个桶含有 ki个数字,则第 i行输出 ki个整数,表示这个桶内的数字。注意:输出每个桶的数字时应按升序排序输出。

img

我的解答思路和尝试过的方法
我想要达到的结果

不用回答啦,找到问题了╰(●’◡’●)╮