package com.company; import java.util.Scanner; public class Main { private static int m; public static void main(String[] args) { // write your code here Scanner sc=new Scanner(System.in); String nodex=sc.next(); int n=sc.nextInt(); int k=sc.nextInt(); String[] first=new String[n]; int[] num=new int[n]; String[] last=new String[n]; String[] address=new String[n+1]; for (int i=0;i<n;i++){ first[i]=sc.next(); num[i]=sc.nextInt(); last[i]=sc.next(); } //获取链表address for (int i=1;i<n+1;i++){ for (int j=0;j<n;j++){ if (i==num[j]){ address[i-1]=first[j]; } if (num[j]==n){ address[n]=last[j]; } } } //接下来将address进行反转 String[] reverse=new String[n+1]; int count=(n+1)/k; for (int i=0;i<count;i++){ for (int j=i*k,m=0;j<k*(i+1);j=j+1,m++){ if (i+1<=count&&m<k){ reverse[j]= address[(i+1)*k-m-1]; } } m=0; } //倒转数组reverse for (int i=k*count;i<n+1;i++){ reverse[i]=address[i]; } for (int j=0;j<n;j++){ for (int i=0;i<n;i++){ if (reverse[j]==first[i]){ System.out.println(reverse[j]+" "+num[i]+" "+reverse[j+1]); } } } } }
很痛苦的java选手,明明做出来了,却被判0分,一个超时,其它全错。牛客上一个正确,其它全超时!