⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1837276_ac_0ms_24k.c

📁 北大大牛代码 1240道题的原代码 超级权威
💻 C
字号:
# include <stdio.h>
  /*0 stand for Bill 1 stand for Steve 2 stand for Linus*/
void main()
{
 int n, t, i, j, p, O, NO, tmp, t1, t2, a[4][4], time[25];
 
 scanf("%d",&NO);
 O = 1;
 while(NO--)
 {
   a[0][0] = a[1][0] = a[2][0] = 0;
   scanf("%d%d",&t,&n);
   
   for(i = 0; i < n; i++)
    scanf("%d",&time[i]);
   t1 = t2 = a[0][1] = 0;
   for(i = 0; i < n; i++)
   { t2 += time[i];
    if(t2 <= t)
   {a[0][1]+=time[i]+t1;t1 = t2;a[0][0]++;}
    
   }
   
   printf("Scenario #%d:\n",O++);
   for(i = 0; i < n - 1; i++)
   {
    p = i;
    for(j = i + 1; j < n; j++)
    if(time[p] > time[j])
     p = j;
     if(p!=i)
     {
       tmp = time[p];
       time[p] = time[i];
       time[i] = tmp;
     }
   }
   t1 = t2 = a[1][1] = 0;
   for(i = 0; i < n; i++)
   {
      t2 += time[i];
     if(t2<= t) 
      {a[1][1] += time[i] + t1;t1 = t2; a[1][0]++;}
   }
   t1 = t2 = a[2][1] = 0;
   for(i = n - 1; i >= 0; i--)
     {
      t2 += time[i];
      if(t2 <= t)
      {a[2][1] += time[i] + t1;t1=t2;a[2][0]++;}
      }
  if(a[0][0]==a[1][0]&&a[0][0]==a[2][0]&&a[0][1]==a[1][1]&&a[1][1]==a[2][1])
  {printf("Steve wins with %d solved problems and a score of %d.\n\n",a[1][0],a[1][1]);continue;}
  if(a[1][0] > a[2][0]||a[1][0] == a[2][0] && a[1][1] < a[2][1]) tmp = 1; else tmp = 2;
  if(a[0][0] > a[tmp][0]||a[0][0] == a[tmp][0] && a[0][1] < a[tmp][1]) tmp = 0;
   if(tmp==0) printf("Bill");
   else if(tmp==1) printf("Steve");
       else printf("Linus");
 printf(" wins with %d solved problems and a score of %d.\n\n",a[tmp][0],a[tmp][1]);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -