java最后一个点超时,日;尽力了
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
const int long long N=1e8;
int a[N],b[N];
int main()
{
long long ch,k=0;
while(cin>>ch&&ch!=-1)
{
a[k]=ch;
k++;
}
while(cin>>ch&&ch!=-1)
{
a[k]=ch;
k++;
}
sort(a,a+k);
if(k==0)
cout<<"NULL";
else
for(long long i=0;i<k;i++)
{
cout<<a[i];
if(i!=k-1)
cout<<" ";
}
return 0;
}
import java.util.List;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.stream.Stream;
public class Main{
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
static int[] num1 = new int[1000005];
static int[] num2 = new int[1000005];
static List<Integer> list = new LinkedList<>();
static int num;
static int cnt1;
static int cnt2;
static int readInt() throws IOException{
in.nextToken();
return (int)in.nval;
}
static void Merge(){
int a1=0,a2=0;
while(a1<cnt1 || a2<cnt2){
if(a1>=cnt1){
list.add(num2[a2++]);
continue;
}
if(a2>=cnt2){
list.add(num1[a1++]);
continue;
}
if(num1[a1] > num2[a2]){
list.add(num2[a2++]);
}
else list.add(num1[a1++]);
}
}
public static void main(String[] args) throws IOException {
cnt1=0;
while(in.nextToken() != StreamTokenizer.TT_EOF){
if((int)in.nval == -1) break;
num1[cnt1++] = (int)in.nval;
}
cnt2=0;
while(in.nextToken() != StreamTokenizer.TT_EOF){
if((int)in.nval == -1) break;
num2[cnt2++] = (int)in.nval;
}
Merge();
//System.out.println(list);
Iterator<Integer> it = list.iterator();
int flag=1;
if(it.hasNext() == false){
System.out.println("NULL");
}
else{
while(it.hasNext()){
if(flag==1){
System.out.printf("%d",it.next());
flag=0;
}
else System.out.printf(" %d",it.next());
}
}
}
}