`

joj 1015: Peter Paul and Mary

    博客分类:
  • ACM
阅读更多
http://acm.jlu.edu.cn/joj/showproblem.php?pid=1015

先求出周一到周五Peter,Paul和Mary公共的free time,如果他们的公共free time最大值小于三

则无法安排会议,否则三周之内必可以安排好会议。


#include
using namespace std;

struct FreeTime{
  int begin;
  int end;
};

string days[] = {
 "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"
};

int calCommonFreeTime(FreeTime dayFreeTime[],int n){
 int max = dayFreeTime[0].begin;
 int min = dayFreeTime[0].end;
 int i = 1;
 for(; i < n; i++){
  if(max < dayFreeTime[i].begin)
   max = dayFreeTime[i].begin;
  if(min > dayFreeTime[i].end)
   min = dayFreeTime[i].end;
 }
 int commonFreeTime = min - max;
 return commonFreeTime > 0 ? commonFreeTime : 0;
}

void schedule(int commonFreeTimes[], int n,int icase){
 int maxFreeTime = commonFreeTimes[0];
 int i = 1;
 for(; i < n; i++){
  if( maxFreeTime < commonFreeTimes[i] ){
   maxFreeTime = commonFreeTimes[i];
  }
 }
 if(maxFreeTime < 3)//can't schedule
  cout << "Case " << icase << ": The meetings cannot be scheduled." << endl;
 else{//can schedule
  int j;
  int time = 1;
  string meetingDays[3];
  for(i = 0; i < 3; i++)//at most schedule 3 weeks
   for(j = 0; j < n; j++){
    if(commonFreeTimes[j] >= time){
     meetingDays[time-1] = days[j];
     time++;
    }
   }
    cout << "Case " << icase << ": " << meetingDays[0] 
      << " for 1 hour, then " << meetingDays[1]
   << " for 2 hours, then " << meetingDays[2]
   << " for 3 hours." << endl;
 }
}

int main(){
 int ncase;
 FreeTime freeTimes[3][5];
 int commonFreeTimes[5];
 FreeTime dayFreeTime[3];
 cin >> ncase;
 int i,j,k;

 for(i = 1; i <= ncase; i++){
  for(j = 0; j < 3; j++)
   for(k = 0; k < 5; k++){
    cin >> freeTimes[j][k].begin >> freeTimes[j][k].end;
    if(freeTimes[j][k].end < freeTimes[j][k].begin)
     freeTimes[j][k].end += 12;//change the end hour according to 24 hours a day
   }

  for(j = 0; j < 5; j++){
   for(k = 0; k < 3; k++){
    dayFreeTime[k] = freeTimes[k][j];
   }
   commonFreeTimes[j] = calCommonFreeTime(dayFreeTime,3);
  }

  schedule(commonFreeTimes,5,i);
 }
 return 0;
}


0
0
分享到:
评论

相关推荐

    一个有关调度的问题joj1015

    这个题其实现在想起来也不知道是怎么就给ac的。

    joj 部分题目答案 自己做的 仅供参考

    joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考

    joj上做的一些ACM试题

    在JOJ上做的一些ACM试题,都通过在线测试。

    joj.rar_joj

    本程序能实现操作系统中的先进先出页面置换算法

    joj acm 部分习题解答

    一些题目解答 1001-1012 自己做的,希望能帮助到一些朋友

    JOJ-jilin-university--acm.rar_joj

    可以为在JOJ上练习的同学做入门使用,这些代码全部通过。

    acm.rar_acm jlu 10_acm jlu 1029_joj 1237_joj10

    joj acm 源代码,即一些题得答案,方便大家联系参考。加油吧。

    JoJ-crx插件

    Etre au courant quand JoJ est en live,策划人semaine et liens vers lesréséauxauxsocioaux Soyez au courant纠结JoJ开始à流光! 现场直播将继续进行。 约翰·奎因·伊斯特·布鲁和克林·德集团的非官方网站 D...

    吉林大学 joj 1000-2645题代码

    吉林大学 joj 1000-2645题代码,嘿嘿,大家就不用在花JPOINT买代码了,祝ACMer实现自己的心愿

    Joj - Java Version of Java-开源

    Joj 以与 JDOM 提供 XML 的 Java 表示类似的方式提供 Java 源代码的 Java 对象表示。

    joj 1424 硬币兑换问题

    硬币转化问题。用动态规划解决,不是很难。

    吉林大学ACM题集.pdf-JOJ

    整理的ACM题集,吉林大学的,pdf格式,jilin univercity online judge system

    acm joj 1600

    关于大数取模的运算,比如说:a^b%m。下面提供2种解法。

    jovo-plugins:J Jovo框架插件

    插件 :star: Jovo插件插件使您可以轻松扩展Jovo Framework,而不必弄乱其核心代码和体系结构。 查看以了解如何创建自己的插件。插件清单要将您的插件添加到下表中,请分叉存储库,然后以与其他插件相同的格式将您的...

    JoJo-s-Bizarre-Survival:一个模组,将JoJo的奇异冒险中的看台添加到Minecraft

    该mod基于荒木飞吕彦的JoJo的奇妙冒险漫画和动漫系列。 这个mod也受到KnightDemon的1.12 mod 极大启发。 这个mod的目的是要从专营权中尽可能多地增加Minecraft,该mod目前仅包含Stand能力,其他能力(Hamon,...

    ControlEstoque_GH:..

    Este Projeto签证是由estoque进行的,它是由mer mercadorias uma determinada empresa sejam averiguadas和atualizadas ... 2021年1月20日,由JoséCláudiodeAraújoJúnior和Annielly Ferreira de Sousa所设计。

    furystudios

    furystudios 普尔维·扎达塔克(Prvi zadatak) ...DroppingOff - radnikhodajućidolazi做pripadajuće科萨雷(izvedeno kroz provjeru tagova kutije)我卡达joj JE dovoljno blizu,fizičkiJE lan

    大智慧最新安装

    大智慧最新安装包,老的已经过期不能查询个人自选股,所以推荐最新的大智慧给大家安装

Global site tag (gtag.js) - Google Analytics