警示后人
查看原帖
警示后人
1023189
wangtairan114楼主2023/10/3 14:31

错误代码如下:

#include <cstring>
#include <string>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <stack>
#include <queue>
#include <limits.h>
#include <list>
#include <set>
#include <map>
using namespace std;
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)>(b)?(b):(a))
#define INF 0x3f3f3f3f
#define ll long long
#define sc scanf
#define pr printf
#define v1 first
#define v2 second
#define ll long long
int n,m,k,a[25][25];
struct pos{
    int num,x,y;
    void set(int a1,int a2,int a3)
    {
        num=a1;
        x=a2;
        y=a3;
    }
    pos(){
        num=0;
        x=0;
        y=0;
    }
}p[630];
int main()
{
    int cnt=0;
    sc("%d%d%d",&n,&m,&k);
    for(int i=1; i <= n; i++)
    {
        for(int j=1; j <= m; j++)
        {
            sc("%d",&a[i][j]);
            if(a[i][j]>0)
            {
                p[++cnt].set(a[i][j],i,j);
            }
        }
    }
    sort(p+1,p+cnt+1,[](pos x,pos y){return x.num>y.num;});
    int cnt2=0;
    pos cur;
    cur.set(0,1,p[1].y);
    k--;
    for(int i=1; i <= n; i++)
    {
            if(abs(p[i].x-cur.x)+abs(p[i].y-cur.y)+1+p[i].x<=k)
            {
                cnt2+=p[i].num;
                k-=abs(p[i].x-cur.x)+abs(p[i].y-cur.y)+1;
                cur=p[i];
            }
            else
            {
                cout <<cnt2;
                return 0;
            }
//        cout << k;
    }
    cout << cnt2;
    return 0;
}

沦落为WA60

重要事情说三遍:

循环范围不要写错

循环范围不要写错

循环范围不要写错

查了30分钟才查出来(悲

2023/10/3 14:31
加载中...