1014 Waiting in Line (30)

发布时间:2016-12-9 21:32:56 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"1014 Waiting in Line (30)",主要涉及到1014 Waiting in Line (30)方面的内容,对于1014 Waiting in Line (30)感兴趣的同学可以参考一下。

只拿了19分不知为何。所以参考:http://blog.csdn.net/lv_zj/article/details/15809261 #include<iostream> using namespace std; class A { public:  enum{N=20,M=10,K=1000,max_time=540};  int findmin();  void init();  void run();  void printanswer(); private:  int n,m,k,q;  int windowwait[N][M],visit,needtime[K],outtime[K],countwait,queriesID[K],nowid,timelie[N]; }; void A::init() {  cin>>n>>m>>k>>q;  int i;  for(i=0;i<k;i++)   cin>>needtime[i];  for(i=0;i<q;i++)   cin>>queriesID[i]; } int A::findmin() {  int i,tmp;  tmp=0;  for(i=1;i<n;i++)   if(windowwait[i][0]<windowwait[tmp][0])    tmp=i;  return tmp; } void A::run() {  countwait=0;  int i,j,lieshu;  visit=k;  for(i=0;i<n;i++)   timelie[i]=0;  for(i=0;i<m;i++)  {   for(j=0;j<n;j++)   {    if(countwait<k)       {          windowwait[j][i]=needtime[countwait];     timelie[j]+=needtime[countwait];     outtime[countwait]=timelie[j];     countwait++;     visit--;    }    else    {     return;    }   }  }  nowid=countwait;  while(visit>0)   {    lieshu=findmin();    int ttt;    ttt=windowwait[lieshu][0];    for(i=0;i<n;i++)     windowwait[i][0]=windowwait[i][0]-ttt;      for(i=0;i<m-1;i++)    {     windowwait[lieshu][i]=windowwait[lieshu][i+1];    }    windowwait[lieshu][m-1]=needtime[countwait];    timelie[lieshu]+=needtime[countwait];    outtime[countwait]=timelie[lieshu];    countwait++;    visit--;   } } void A::printanswer() {  int i,hour,min,ti;  for(i=0;i<q;i++)  {      ti=outtime[queriesID[i]-1];   if(ti<=max_time)   {   hour=8+ti/60;   min=ti%60;   printf("%02d:%02d\n",hour,min);   }   else    printf("Sorry\n");  } } int main() {  A *a=new A;  a->init();  a->run();  a->printanswer();  return 0; }

上一篇:书目记录
下一篇:Python汉字编码经验总结

相关文章

相关评论