1 solutions
-
2
P1086
注意不要弄反x,y
#include<bits/stdc++.h> using namespace std; #define _441 int #define _1640 return int m,n,k,field[30][30],srtx,srty,ans,x,y; void findmax(){ int xt=0; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(field[i][j]>=xt){ srtx=i;srty=j; xt=field[i][j]; } } } } _441 main(){ cin>>m>>n>>k; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ cin>>field[i][j]; } } findmax(); y=srty; while(1){ k-=(abs(srtx-x)+abs(srty-y)+srtx+1);//有没有后路 if(k<0)break;//没有就别走了 k+=srtx;//可以继续贪得无厌,不用回去 ans+=field[srtx][srty];//多采点 //coutt<<ans<<' '<<k<<endl; x=srtx,y=srty; field[srtx][srty]=0;//重置,不然下次findmax又找回来 findmax(); } cout<<ans; _1640 0; }
- 1
Information
- ID
- 1132
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 9
- Tags
- # Submissions
- 114
- Accepted
- 10
- Uploaded By