40分,求助
查看原帖
40分,求助
735935
Etic_HAO楼主2022/9/8 20:44

提前向各位帮助的大佬说谢谢

#include<bits/stdc++.h>
using namespace std;
  
int main()
{
    int n, m, time, time0, a[25][25], total = 0;
    cin >> n >> m >> time;
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= m; ++j)
            cin >> a[i][j];
    int x = 0, y = 0;
    while (time)
    {
        int i, j;
        int max = 0;
        int maxi, maxj;
        for (i = 1; i <= n; ++i)
            for (j = 1; j <= m; ++j)
            {
                if (a[i][j] > max)
                {
                    max = a[i][j];
                    maxi = i;
                    maxj = j;
                }
            }
        if (max==0)
            break;
        if (x==max)
            time0 = maxi - x;
        else
        {
            if (maxi >= x && maxj >= y)
                time0 = maxi - x + maxj - y;
            if (maxi >= x && maxj < y)
                time0 = maxi - x + y - maxj;
            if (maxi < x && maxj >= y)
                time0 = x - maxi + maxj - y;
            if (maxi < x && maxj < y)
                time0 = maxi - x + maxj - y;
        }
        if (time < time0 + maxi + 1)
            break;
        time -= time0;
        total += a[maxi][maxj];
        a[maxi][maxj] = 0;
        time--;
        x = maxi;
        y = maxj;
    }
    cout << total;
    return 0;
}
2022/9/8 20:44
加载中...