这个题其实挺水的,我的做法是开一个401的数组然后将每一次被占用的走廊+1,然后看这个数组里的最大值,然后乘以10;注意就是当较小的数是偶数时,更新的区间左端-1,如果是较大的数是奇数时则更新的区间右端+1.
import java.util.*; public class Main { public static void main(String [] args) { Scanner scan=new Scanner(System.in); int T=scan.nextInt(); while(T-->=0) { int room[]=new int [401]; int k=scan.nextInt(); for(int i=0;i<k;i++) { int s=scan.nextInt(); int t=scan.nextInt(); int m=max(s,t); int n=min(s,t); if(n%2==0) n--; if(m%2==1) m++; for(int j=n;j<=m;j++) { room[j]++; } } Arrays.sort(room);
System.out.println(room[400]*10); } } static int max(int n,int m) { if(n>=m) return n; else return m; } static int min(int n,int m) { if(n<=m) return n; else return m; } }