网易互娱耗时最长的活动
package com.niukeoffer.a898;
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String arg[]) {
int i ,j;
Scanner sc=new Scanner(System.in);
int T=sc.nextInt();
for(i=0;i<T;i++){
int max_id=-1;
int N=sc.nextInt();
int[][] arr =new int[N][3];
for(i=0;i<N;i++){
for(j=0;j<3;j++){
arr[i][j]=sc.nextInt();
if(j==1&&arr[i][j]>max_id){
max_id=arr[i][j];
}
}
}
Stack sk=new Stack();
Stack sk_num=new Stack();
sk.push(1);
sk_num.push(0);
int[] loss=new int[max_id+1];
int[] qi=new int[max_id+1];
int flag=arr[0][1];
for(i=1;i<N;i++){
if(arr[i][1]!=flag){
sk.push(arr[i][1]);
sk_num.push(i);
qi[arr[i][1]]=arr[i][0];
flag=arr[i][1];
}else{
sk.pop();
Integer c=(Integer) sk_num.pop();
int time=arr[i][0]-qi[arr[c][1]];
loss[arr[i][1]]+=time;
if(!sk.empty()){
loss[(Integer)sk.peek()]-=time;
flag=(Integer) sk.peek();
}
}
}
int max_loss=-1,max_ids=-1;
for(i=1;i<=max_id;i++){
if(max_loss<loss[i]){
max_loss=loss[i];
max_ids=i;
}
}
System.out.println(max_ids);
}
}
}