下周就是市选了,也应该做点水题练练手感了。
以下是我的代码:
#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==0) break;
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) 编辑 收藏 引用 所属分类:
题目分类:基础/模拟