답안 #358298

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
358298 2021-01-25T09:52:56 Z amunduzbaev 웜뱃 (IOI13_wombats) C++14
12 / 100
20000 ms 98796 KB
#include "wombats.h"

#ifndef EVAL
#include "grader.cpp"
#endif 

#include "bits/stdc++.h"
using namespace std;

#define pb push_back
#define ff first
#define ss second

const int N = 5e3+5;

vector<pair<int, int>> edges[N];
int n, m;

int h[N][N], v[N][N];

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

void changeH(int p, int q, int w) {
    for(auto &x:edges[p*m+q]){
		if(x.ff == p*m+q+1) x.ss = w;
	}
	for(auto &x:edges[p*m+q+1]){
		if(x.ff == p*m+q) x.ss = w;
	}
}

void changeV(int p, int q, int w) {
    for(auto &x:edges[p*m+q]){
		if(x.ff == (p+1)*m+q){
			x.ss = w;
		}
	}
}

#define ll long long
const ll mod = 1e18+7;

int escape(int V1, int V2) {
    priority_queue<pair<int, int>> qq;
	qq.push({0, V1});
	vector<ll> dis(n*m, mod);
	dis[V1] = 0;
	
	while(!qq.empty()){
		int cur = qq.top().ss, dd = qq.top().ff; qq.pop();
		if(dd > dis[cur]) continue;
		for(auto x:edges[cur]){
			if(dis[x.ff] > dis[cur] + x.ss){
				dis[x.ff] = dis[cur] + x.ss;
				qq.push({-dis[x.ff], x.ff});
			}
		}
	}
	
	return dis[m * (n-1) + V2];
}

/*

3 4
0 2 5
7 1 1
0 4 0
0 0 0 2
0 3 4 7
5
3 2 1
3 3 3
2 0 0 5
1 1 1 6
3 2 1

*/

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 88 ms 44908 KB Output is correct
2 Correct 88 ms 44908 KB Output is correct
3 Execution timed out 20056 ms 46484 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 492 KB Output is correct
2 Correct 1 ms 492 KB Output is correct
3 Correct 1 ms 492 KB Output is correct
4 Correct 18 ms 620 KB Output is correct
5 Correct 9 ms 620 KB Output is correct
6 Correct 10 ms 620 KB Output is correct
7 Correct 24 ms 768 KB Output is correct
8 Correct 15 ms 620 KB Output is correct
9 Correct 17 ms 620 KB Output is correct
10 Correct 15 ms 620 KB Output is correct
11 Correct 8213 ms 1988 KB Output is correct
12 Correct 24 ms 620 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 17 ms 3052 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 195 ms 98796 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 17 ms 3052 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 18 ms 3172 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -