답안 #728353

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
728353 2023-04-22T09:49:34 Z Rasoul006 웜뱃 (IOI13_wombats) C++17
0 / 100
55 ms 11752 KB
#include "wombats.h"

#include <bits/stdc++.h>

#define endl "\n"

#define F first

#define S second

#define pb push_back

#define all(x) x.begin() , x.end()

typedef long long ll;

using namespace std;

const int N = 6e3+5;

const long long oo = 1e18;

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

ll n , m , h[N][204] , v[N][204] , sum , c , r ;

ll dis[24][24][24][24] ;

set < pair <ll, pair <ll, ll>> > st ;

void init(int R, int C, int H[5000][200], int V[5000][200]) {

    r = R , c = C ;

    n = r , m = c ;

    for (int q = 0 ; q<m ; q++)
        for (int p = 0 ; p<m ; p++)
            for (int i = 0 ; i<n ; i++)
                for (int j = 0 ; j<m ; j++)
                    dis[q][p][i][j] = oo ;

    for (int i = 0 ; i<m ; i++)
    {
        st.insert({0 , {0 , i}});
        while (!st.empty())
        {
            pair <ll , pair <ll,ll>> pr = *st.begin() ;
            st.erase(st.begin());

            ll cos = pr.F , x = pr.S.F , y = pr.S.S ;

            if (cos + v[x][y] < dis[0][i][x+1][y] && x+1 < n)
            {
                dis[0][i][x+1][y] = cos + v[x][y] ;
                st.insert({dis[0][i][x+1][y] , {x+1 , y}});
            }

            if (cos + h[x][y] < dis[0][i][x][y+1] && y+1<n)
            {
                dis[0][i][x][y+1] = cos + h[x][y] ;
                st.insert({dis[0][i][x][y+1] , {x , y+1}});
            }

            if (cos + h[x][y-1] < dis[0][i][x][y-1] && y-1 >= 0)
            {
                dis[0][i][x][y-1] = cos + h[x][y-1] ;
                st.insert({dis[0][i][x][y-1] , {x , y-1}});
            }
        }
    }

}

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){

    return dis[0][V1][n-1][V2] ;
}

Compilation message

grader.c: In function 'int main()':
grader.c:15:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
   15 |  int res;
      |      ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 6504 KB Output is correct
2 Incorrect 6 ms 6484 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 1 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 54 ms 11744 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 11 ms 10712 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 55 ms 11752 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 55 ms 11704 KB Output isn't correct
2 Halted 0 ms 0 KB -