【PAT乙级】1025 反转链表 代码可以通过测试用例但是一旦提交全部答案错误?

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){
	string add;
	int fadd = 0, num = 0, k = 0,nadd=0,n=0,flag=0;
	cin>>fadd>>num>>k;
	vector<string> arr(num*5);
	for (int i = 0; i < num; i++)
	{
		cin>>add>>n>>nadd;
		arr[n]=add;
	}
		for (int j = k; j <= num; j=j+k)
		{
		
			for (int i = j; i >j-k; i--)
			{	
					++flag;
                if (flag==k+1)
					{
						cout<<arr[i]<<endl;
					}
					if (flag!=num&&i!=1)
					{
						cout<<arr[i]<<" "<<i<<" "<<arr[i-1]<<endl;
					}else if (flag==num)
					{
							cout<<arr[i]<<" "<<i<<" "<<"-1";
					}else if (flag!=num&&i==1)
					{
						cout<<arr[i]<<" "<<i<<" ";
					}
					

			}
		}

		for (int i = num-num%k+1; i <=num; i++)
		{
			++flag;
			if (i == num-num%k+1)
			{
				cout<<arr[i]<<endl;
			}
			if (flag<num)
			cout<<arr[i]<<" "<<i<<" "<<arr[i+1]<<endl;
			else
				cout<<arr[i]<<" "<<i<<" "<<"-1"<<endl;
		}
	return 0;
}

就是运行测试用例的时候没有任何错误,试着运行了网友提供的其他测试用例也没问题,可是一提交代码全错,我自己看了好久没发现代码哪里有问题,有没有大神为我指点迷津?

贴的代码有点丑大家不要介意。。。