心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
下周就是市选了,也应该做点水题练练手感了。
以下是我的代码:
#include<stdio.h>
#define maxn 27
long abs(long x)
{
    
return (x>=0?x:-x);
}
int main()
{
    freopen(
"peanuts.in","r",stdin);
    freopen(
"peanuts.out","w",stdout);
    
long m,n,k,x,y,nowx,nowy,max,cost,ans,a[maxn][maxn];
    
bool first;
    scanf(
"%ld%ld%ld",&m,&n,&k);
    
for(long i=1;i<=m;i++)
      
for(long j=1;j<=n;j++)
        scanf(
"%ld",&a[i][j]);
    
//  Input
    ans=0;
    first
=true;
    
while(true)
    {
       x
=y=max=0;
       
for(long i=1;i<=m;i++)
         
for(long j=1;j<=n;j++)
           
if(max<a[i][j])
           {
              max
=a[i][j];
              x
=i;y=j;
           }
       
if(max==0break;
       a[x][y]
=0;
       
if(first)
       {
          nowx
=0;nowy=y;first=false;
       }
       cost
=abs(nowx-x)+abs(nowy-y)+abs(x)+1;
       
if(k>=cost)
       {
          ans
+=max;
          k
-=(abs(nowx-x)+abs(nowy-y)+1);
          nowx
=x;nowy=y;
       }
       
else break;
    }
    printf(
"%ld\n",ans);
return 0;
}


posted on 2010-03-21 21:14 lee1r 阅读(1014) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:基础/模拟

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理