同 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;
}