Submission #1366374

#TimeUsernameProblemLanguageResultExecution timeMemory
1366374phtungMaze (JOI23_ho_t3)C++20
8 / 100
243 ms38452 KiB
#include <bits/stdc++.h>

using namespace std;

#define name "IO"
#define int long long

const int inf = 1e18 + 7;
const int maxn = 1e5 + 5;
const int mod = 1e9 + 7;
int r, c, n, sr, sc, gr, gc;
vector<vector<char>> a;
vector<vector<bool>> rs, rg;

int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};

namespace subtask1
{
    void solve()
    {
        priority_queue<pair<int, pair<int, int>>, vector<pair<int, pair<int, int>>>, greater<>> pq;
        pq.push({0, {sr, sc}}); 
        vector<vector<int>> dist(r + 1, vector<int>(c + 1, inf));
        dist[sr][sc] = 0;

        while(!pq.empty())
        {
            auto [d, cur] = pq.top();
            pq.pop(); 
            auto [x, y] = cur; 
            if(d > dist[x][y]) continue;

            for(int i = 0; i < 4; i++)
            {
                int tx = x + dx[i];
                int ty = y + dy[i];

                if(tx < 1 || tx > r) continue;
                if(ty < 1 || ty > c) continue;
                int cur = d; 
                if(a[tx][ty] == '#') cur++; 
                if(dist[tx][ty] <= cur) continue;

                dist[tx][ty] = cur; 
                pq.push({cur, {tx, ty}});
            }
        }

        cout << dist[gr][gc] << "\n";
    }   
}

void solve()
{
    cin >> r >> c >> n >> sr >> sc >> gr >> gc;
    a.resize(r + 1, vector<char>(c + 1));

    for(int i = 1; i <= r; i++)
    {
        for(int j = 1; j <= c; j++) cin >> a[i][j];
    }
    
    if(n == 1)
    {
        subtask1::solve();   
        return;
    }

    if(r * c <= 1000)
    {
        
        return;
    }


}

signed main()
{
    if(fopen(name".INP","r"))
    {
        freopen(name".INP","r",stdin);
        // freopen(name".OUT","w",stdout);
    }


    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    clock_t start = clock();

    int t = 1;

    while(t--) solve();

    std::cerr << "Time: " << clock() - start << "ms\n";

    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:83:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   83 |         freopen(name".INP","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...