답안 #728380

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
728380 2023-04-22T10:10:16 Z Rasoul006 웜뱃 (IOI13_wombats) C++17
컴파일 오류
0 ms 0 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[105][105] ;

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

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

    n = R , m = C ;

    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] ;
            sum += v[i][j] ;
        }
    }

}

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

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

int escape(int V1, int V2)
{
    if (C == 1)
        return sum ;
    
    for (int p = 0 ; p<n ; p++)
        for (int j = 0 ; j<m ; j++)
            dis[p][j] = oo ;

    st.insert({0 , {0 , V1}});

    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[x+1][y] && x+1 < n)
        {
            dis[x+1][y] = cos + v[x][y] ;
            st.insert({dis[x+1][y] , {x+1 , y}});
        }

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

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


    return dis[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;
      |      ^~~
wombats.cpp: In function 'int escape(int, int)':
wombats.cpp:59:9: error: 'C' was not declared in this scope
   59 |     if (C == 1)
      |         ^