PAT 甲级1089 原题链接
以下是过不了测试点4的代码。非常冗长,仅用以指出错误的地方,精简后的代码见最下。
#include<stdio.h>
#include<algorithm>
using namespace std;
int num1[110],num2[110],num3[100];
void func(int arr[],int left1,int right1,int left2,int right2){
int i=left1,j=left2;
int temp[110],index=0;
while(i<=right1 && j<=right2){
if(arr[i]<=arr[j]) temp[index++]=arr[i++];
else temp[index++]=arr[j++];
}
while(i<=right1) temp[index++]=arr[i++];
while(j<=right2) temp[index++]=arr[j++];
for(i=0;i<index;i++) arr[i+left1]=temp[i];
}
int main(){
int n,i,k,j;
scanf("%d",&n);
for(i=