代码实现
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
//2 6 6
//1 1
//5 2
//3 1
//6 2
//2 1
//6 2
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int res = 0; //统计结果
int N = scan.nextInt(); // N家店
int M = scan.nextInt(); // M条订单信息
int T = scan.nextInt(); // T时刻
//下标对应哪一家店,值为等级
int[] level = new int[N + 1];
//用来判断是否优先缓存
boolean[] judge = new boolean[N + 1];
//下标为对应的时刻,值为 是哪家店
List[] array = new ArrayList[T + 1];
//每个时刻可能有多个店家
for (int i = 0; i <= T; i++) {
array[i] = new ArrayList();
}
for (int i = 1; i <= M; i++) {
int ts = scan.nextInt();
int id = scan.nextInt();
array[ts].add(id);
}
for (int i = 1; i <= T; i++) { // 遍历时刻
for (int j = 1; j <= N; j++) { // 遍历店家
int flag = 0;
Object k = j;
while (array[i].contains(k)) {
flag = 1;
array[i].remove(k);
level[j] += 2;
if (level[j] > 5) {
judge[j] = true;
res++;
}
}
//此时刻没有j店家的订单
if (flag == 0) {
//降级
level[j] = level[j] == 0 ? 0 : level[j] - 1;
if (judge[j] && level[j] <= 3) { //如果在优先缓存里且等级小于等于3,则退出缓存
judge[j] = false;
res--;
}
}
}
}
System.out.println(res);
}
}