• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
锦燕云
博客园    首页    新随笔    联系   管理    订阅  订阅

USACO Section 1.3 : Barn Repair

# include <stdio.h>
int num[201]={0},f[202]={0};

int qsort (int lx,int rx,int s[201])
{
   
int i,j,t;
   i
=lx,j=rx,t=s[i];
   
do
   {
      
while ((s[j]>t)&&(i<j)) j--;
      
if (i<j)
      {
         s[i]
=s[j];
         i
++;
         }
      
while ((s[i]<t)&&(i<j)) i++;
      
if (i<j)
      {
         s[j]
=s[i];
         j
--;
         }
      }
while (i<j);
   s[i]
=t;
   i
++;
   j
--;
   
if (i<rx) qsort(i,rx,s);
   
if (j>lx) qsort(lx,j,s);
   
return (0);
}

main ()
{
   FILE 
*in=fopen ("barn1.in","r");
   FILE 
*out=fopen("barn1.out","w");
   
int M,S,C;
   
int maxf=0;
   
int i;
   fscanf (
in,"%d%d%d",&M,&S,&C);
   
for (i=1;i<=C;i++)
      fscanf (
in,"%d",&num[i]);
   qsort(
1,C,num);
   
   
for (i=2;i<=C;i++)
      f[i]
=num[i]-num[i-1]-1;
   qsort(
1,C,f);
   
for (i=C;i>C-M+1;i--)
      maxf
+=f[i];
   maxf
+=num[1]-1;
   maxf
+=S-num[C];
   fprintf (
out,"%d\n",S-maxf);
   fclose(
in);
   fclose(
out);
   exit(
0);
}
posted @ 2009-08-01 18:35  锦燕云  阅读(135)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3