- 問題を理解するのは容易な問題である
- 細かい設定もないため実装するだけなのだが、実装方法が少々難しかった。
- 一定期間使っている録画機の最大数を求める問題である。
- この問題は105という制約がついているので簡単になっている。
- そう全探索すれば良いのだ
- それはわかっていても実装が楽になるわけではなかった。
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int C = sc.nextInt();
int[][] a = new int[C][100000];
for (int i = 0; i < N; ++i) {
int s = sc.nextInt() - 1;
int t = sc.nextInt() - 1;
int c = sc.nextInt() - 1;
for (int j = s; j <= t; ++j)
if (a[c][j] == 0)
a[c][j]++;
}
int ans = 0;
for (int i = 0; i < 100000; ++i) {
int tmp = 0;
for (int j = 0; j < C; ++j) {
tmp += a[j][i];
}
ans = Math.max(ans, tmp);
}
System.out.println(ans);
}
}
備考
- startの場所に+1 finnishの場所に-1をつけて最大値maxを求めるたりかたもある。