百度之星之F:百科蝌蚪团

简介: 百度百科有一支神奇的队伍,他们叫自己“百科蝌蚪团”。为了更好的让蝌蚪团的成员们安排工作,百度百科的运营团队定出了一个24小时制的时间表。

F:百科蝌蚪团


时间限制:


1000ms


内存限制:


65536kB


描述


百度百科有一支神奇的队伍,他们叫自己“百科蝌蚪团”。为了更好的让蝌蚪团的成员们安排工作,百度百科的运营团队定出了一个24小时制的时间表。例如:

1.    每个蝌蚪团成员工作时长相同;

2.    必须安排蝌蚪团成员在他们方便的时间段工作;

3.    蝌蚪团成员安排时间最小安排时间节点(开始工作或停止工作)为半小时,比如04:00或04:30,而不是04:15;

4.    蝌蚪团成员一天在百度百科工作的时间是有上限的,他们会根据自己的情况给出上限。

5.    在特定时间段内必须有一定数量的蝌蚪团成员工作,以保证百度百科不断的进步

请帮运营团队计算一下,能保持24小时稳定在岗的蝌蚪团最少成员的数量。如果有2个蝌蚪团成员工作结束,同时另2个蝌蚪团成员开始工作,这段时间都算有2各成员稳定在岗。


输入


输入有多组,每组测试数据以一个整数N开头(1 ≤ N ≤ 50),表示蝌蚪团的成员数。紧接着,我们会有N个数据块,每一个数据块对应了一名蝌蚪团成员的日程情况。

每个数据块以两个整数开始,分别为K(1 ≤ K ≤ 50)和M(1 ≤ M ≤ 1440),用空格隔开。K表示这个数据块对应蝌蚪团成员方便的时间段的数量,M表示这个成员愿意每天在百度百科工作的最长分钟数。接下去的K行中,每行包括两个时间,分别表示成“HH:MM”的格式,以空格分隔,分别对应了该蝌蚪团成员一个方便的时间段的开始时间、结束时间;例如09:00 10:00表明他在早上九点到十点的时间段是方便的,可以在百度百科工作。如果两个时间相同,则说明这个他全天都是方便的。

最后一组数据的N为0,表示输入结束。


输出


对于每组数据,输出为一个整数,占一行。表示能保持24小时稳定在岗的蝌蚪团最少成员的数量。


样例输入


5


1 720


18:00 12:00


1 1080


00:00 23:00


1 1080


00:00 20:00


1 1050


06:00 00:00


1 360


18:00 00:00



3


1 540


00:00 00:00


3 480


08:00 10:00


09:00 12:00


13:00 19:00


1 420


17:00 00:00



3


1 1440


00:00 00:00


1 720


00:00 12:15


1 720


12:05 00:15


0


样例输出


2


1


1


【答案未通过】

#include <iostream>

#include <string>

#include <vector>

using namespace std;

int main(void)

{

      intblockNums = 0;

      intcountOfTimeSegment = 0; //k

      intmaxMinutesOfMember = 0; //m

      stringbeginTimeOfMember;  //beginTime

      stringendTimeOfMember;    //endTime

   

      int*pBlockArr = NULL;

      int*pMaxMinute = NULL;

  pair<string,string> timePairs;

      vector<pair<string,string> > tVec;

      vector<pair<string,string> >::iterator iter;

      boolbOnlyOne = false;

   

      intminMemberCnt = 0;    //输出结果,最小成员数...

      while(cin >> blockNums )

      {

             if(blockNums== 0)

             {

                    break;

             }

             pBlockArr= new int[blockNums];

             pMaxMinute= new int[blockNums];

           

             for(int i=0; i< blockNums; i++ )

             {

                    cin>> pBlockArr[i] >> pMaxMinute[i];

                    if(pBlockArr[i] != 0)

                    {

                           for(int j = 0; j < pBlockArr[i]; j++)

                           {

                                  cin>> beginTimeOfMember >> endTimeOfMember;

                                  timePairs= make_pair(beginTimeOfMember,endTimeOfMember);

                                  tVec.push_back(timePairs);          

                                  iter= tVec.begin();

                                  while( iter != tVec.end() )

                                  {

                                         if(iter->first== iter->second)

                                         {

                                                minMemberCnt= 1;

                                                bOnlyOne= true;

                                                break;

                                         }

                                         ++iter;

                                  }

                           }

                    }//endif

             }//endfor

             if(!bOnlyOne)

             {

                    intiSize = tVec.size();

                    cout<< "iSize = " << iSize << endl;

                 

                    inttempVal = 0;

                    intiCnt = 0;

                    for(int i = 0; i < iSize; i++ )

                    {

                           if((tVec[i].first == "00:00") || (tVec[i].second == "00:00") )

                           {

                                  ++iCnt;

                                  tempVal+= pMaxMinute[i];

                                  if(tempVal>= 24*60)

                                  {

                                         break;

                                  }

                           }

                    }

                    minMemberCnt= iCnt;

             }

             cout<< minMemberCnt << endl;

      }//endwhile

   

      return0;

}

————————————————

版权声明:本文为CSDN博主「铭毅天下」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/laoyang360/article/details/7621246

相关文章
|
8月前
|
开发者
【第十四期乘风伯乐奖】获奖名单出炉,快来看看本期谁是社区伯乐!
【第十四期乘风伯乐奖】获奖名单出炉,快来看看本期谁是社区伯乐!
141 7
|
7月前
|
Linux
【第十五期乘风伯乐奖】获奖名单出炉,快来看看本期谁是社区伯乐!
【第十五期乘风伯乐奖】获奖名单出炉,快来看看本期谁是社区伯乐!
117 7
|
9月前
|
程序员 开发者
【第十三期乘风伯乐奖】获奖名单出炉,快来看看本期谁是社区伯乐!
【第十三期乘风伯乐奖】获奖名单出炉,快来看看本期谁是社区伯乐!
338 9
|
9月前
热门游戏服务器搭建征文挑战 · 获奖名单
热门游戏服务器搭建征文挑战最优奖、人气奖、争先奖获奖名单正式公布!
679 29
|
应用服务中间件
投稿开奖丨“轻量应用服务器”征文活动(9&10月)大奖公布
2021年9&10月投稿大奖,以及11&12月阳光普照奖均已公布~
投稿开奖丨“轻量应用服务器”征文活动(9&10月)大奖公布
百度之星之D:共同狂欢
百度2005年8月5日上市时,在北京和纳斯达克的同学们每一个小时整点时就会通一次电话,对一下表,确认一切相关活动都精确同步。但是要注意,在两边的同学位于不同的时区,在夏时制时,两地时差12小时,因此,每次对表都需要做一下时区转换。你来帮我们完成这个有点麻烦的工作吧。
174 0
百度之星之D:共同狂欢
|
算法
百度之星之J:百度的新大厦
描述 继百度搜索框大厦之后,百度又于2012年初在深圳奠基了新的百度国际大厦,作为未来百度国际化的桥头堡。不同于百度在北京的搜索框大厦,新的百度国际大厦是一栋高楼,有非常多的楼层,让每个楼中的电梯都能到达所有楼层将是一个极为不明智的设计。
195 0
|
移动开发 定位技术 数据格式
百度之星之I:地图的省钱计划
百度地图有自己的一套坐标系(你可以把它看作一个笛卡尔坐标系),在这套坐标系里,一个标准单位为1km。而在这坐标系上针对地理信息进行标注的数据,大多数时候是通过购买的方式完成的。为了节约数据更新的成本,数据组里的鑫哥想出了一个好主意——自己测数据。
152 0
|
人工智能 安全 物联网
“阿里云创峰会·南昌站”即将举行,三大亮点抢先看
由江西万科牵手阿里云创新中心共同举办的“阿里云创峰会”,将于12月9日登陆江西南昌。
“阿里云创峰会·南昌站”即将举行,三大亮点抢先看