제출 #1347131

#제출 시각아이디문제언어결과실행 시간메모리
1347131nicolo_010웜뱃 (IOI13_wombats)C++20
16 / 100
20090 ms17348 KiB
#include "wombats.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;

int sm=0;
int n, m;

int v[5000][200], h[5000][200];

void init(int R, int C, int H[5000][200], int V[5000][200]) {
    n = R;
    m = C;
    sm=0;
    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++) {
            v[i][j] = V[i][j];
            h[i][j] = H[i][j];
        }
    }
    for (int i=0; i<n-1; i++) {
        sm += v[i][0];
    }
}

void changeH(int P, int Q, int W) {
    h[P][Q] = W;
}

void changeV(int P, int Q, int W) {
    v[P][Q] = W;
}

int escape(int V1, int V2) {
    map<pii, int> mp;
    int id=0;
    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++) {
            mp[{i, j}] = id++;
        }
    }
    vector<vector<pii>> adj(id);
    vector<int> dis(id, 1e9);
    int s = mp[{0, V1}];
    int e = mp[{n-1, V2}];
    for (int i=0; i<n; i++) {
        for (int j=0; j<m-1; j++) {
            int a = mp[{i, j}];
            int b = mp[{i, j+1}];
            adj[a].push_back({b, h[i][j]});
            adj[b].push_back({a, h[i][j]});
        }
    }
    for (int i=0; i<n-1; i++) {
        for (int j=0; j<m; j++) {
            int a = mp[{i, j}];
            int b = mp[{i+1, j}];
            adj[a].push_back({b, v[i][j]});
        }
    }
    priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> pq;
    pq.push({0, s});
    dis[s] = 0;
    while (!pq.empty()) {
        auto [d, u] = pq.top();
        pq.pop();
        if (d != dis[u]) {
            continue;
        }
        for (auto [v, w]  : adj[u]) {
            if (dis[v] > dis[u]+w) {
                dis[v] = dis[u]+w;
                pq.push({dis[v], v});
            }
        }
    }
    return dis[e];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...