同 P1696,又是一道简单的暴力水题。
第一层循环枚举被解雇的奶牛的编号,第二层循环枚举除了被解雇的奶牛,其他奶牛的工作时间,第三重循环从从工作时间的左端点枚举到右端点,打个标记,再把所有打上了标记的时间点的个数都统计一下,答案就是统计出的结果里面的最大值。
详见代码:
#include<iostream>
using namespace std;
int n, ans = -1e7;
struct node{
int x, y;
}a[105];
bool vis[10005];
int main(){
cin >> n;
for (int i = 1; i <= n; i++){
cin >> a[i].x >> a[i].y;
}
for (int i = 1; i <= n; i++){
int cnt = 0;
for (int j = 0; j <= 1000; j++) vis[j] = 0;
for (int j = 1; j <= n; j++){
if (j == i) continue;
for (int k = a[j].x; k < a[j].y; k++){
vis[k] = 1;
}
}
for (int j = 0; j <= 1000; j++) if (vis[j]) cnt++;
ans = max(ans, cnt);
}
cout << ans;
return 0;
}