[2016-04-07][codeforces][629][B][Far Relative’s Problem]

  • 时间:2016-04-07 14:39:44 星期四

  • 题目编号:[2016-04-07][codeforces][629][B][Far Relative’s Problem]

  • 题目大意:给定n个朋友的性别和位置以及得闲的时间,问最多能同时邀请多少朋友到家里做客,要求男和女的人数一样

  • 分析:

    • 直接前缀和数组,处理出366天中某一天都多少个男性和女性,扫一遍366天,求和取最大值即可
  • 遇到的问题:

    • 不一定要当天男女人数相同才能够聚会,而是应该取最小那个数目*2来计算
  1. #include <cstdio>
  2. #include <algorithm>
  3. using namespace std;
  4. int cnt[2][366 + 10];
  5. int main(){
  6. int n;
  7. scanf("%d",&n);
  8. char s[10];int a,b;
  9. for(int i = 0 ; i < n ; ++i){
  10. scanf("%s%d%d",s,&a,&b);
  11. ++cnt[s[0] == 'M'][a];
  12. --cnt[s[0] == 'M'][b + 1];
  13. }
  14. int cnt1 = 0,cnt2 = 0,res = 0;
  15. for(int i = 1; i <= 366;++i ){
  16. cnt1 += cnt[0][i];
  17. cnt2 += cnt[1][i];
  18. res = max(res, min(cnt1,cnt2) * 2);
  19. }
  20. printf("%d\n",res);
  21. return 0;
  22. }


来自为知笔记(Wiz)


posted on 2016-04-07 15:08  红洋  阅读(111)  评论(0)    收藏  举报

导航