90分渣渣求教
查看原帖
90分渣渣求教
14542
璃猫楼主2017/4/27 19:59
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n,m,k,t=0,ans=0;
struct re
{
    int x,y,data;
}q[401];
int cat(const re&a,const re&b)
{
    if(a.data>b.data) return 1;
    else return 0;
}
int main()
{
    cin>>m>>n>>k;
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            int c;
            cin>>c;
            if(c)
            {
                q[++t].x=i;
                 q[t].y=j;
                q[t].data=c;
            }
        }
    }
    sort(q+1,q+t+1,cat);
    q[0].x=q[1].x;
    q[0].y=0;
    k=k-1;
    for(int i=1;i<=t;i++)
    {
        int d=abs(q[i].x-q[i-1].x)+abs(q[i].y-q[i-1].y);
        if(k-d-1>=0)
        {
            k=k-d-1;
            if(k>q[i].x)
            ans+=q[i].data;
            else break;
        }
        else break;
    }
    cout<<ans;
}
2017/4/27 19:59
加载中...