답안 #897483

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
897483 2024-01-03T07:43:45 Z Muhammad_Aneeq 웜뱃 (IOI13_wombats) C++17
0 / 100
20000 ms 19984 KB
#include <queue>
#include "wombats.h"
#include <algorithm>
using namespace std;
int costy[5000][200],costx[5000][200];
int r,c;
void init(int R, int C, int H[5000][200], int V[5000][200])
{
	r=R;
	c=C;
	for (int i=0;i<C-1;i++)
		for (int j=0;j<R;j++)
			costx[j][i]=H[j][i];
	for (int i=0;i<R-1;i++)
		for (int j=0;j<C;j++)
			costy[i][j]=V[i][j];
}
int dist[5000][200]={};
bool check(int i,int j)
{
	if (i>=0&&i<r&&j>=0&&j<c)
		return 1;
	return 0;
}
void bfs(int i,int j)
{
	queue<pair<int,int>>Q;
	Q.push({i,j});
	dist[i][j]=0;
	while (Q.size())
	{
		int x,y;
		tie(x,y)=Q.front();
		Q.pop();
		if (check(x+1,y))
			if (dist[x+1][y]>dist[x][y]+costy[x][y])
			{
				dist[x+1][y]=dist[x][y]+costy[x][y];
				Q.push({x+1,y});
			}
		if (check(x,y+1))
			if (dist[x][y+1]>dist[x][y]+costx[x][y])
				{
					dist[x][y+1]=dist[x][y]+costx[x][y];
					Q.push({x,y+1});
				}
		if (check(x,y-1))
			if (dist[x][y-1]>dist[x][y]+costx[x][y-1])
				{
					dist[x][y-1]=dist[x][y]+costx[x][y-1];
					Q.push({x,y-1});
				}
	}
}
void changeH(int P, int Q, int W)
{
	costx[P][Q]=W;
}
void changeV(int P, int Q, int W)
{
	costy[P][Q]=W;
}
int escape(int V1, int V2)
{
	if (c==1)
	{
		int ans=0;
		for (int i=min(V1,V2);i<=max(V1,V2);i++)
			ans+=costx[0][i];
		return ans;
	}
	for (int i=0;i<r;i++)
		for (int j=0;j<c;j++)
			dist[i][j]=1e9+10;
	bfs(0,V1);
	return dist[r-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 2 ms 11612 KB Output is correct
2 Incorrect 2 ms 11612 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4456 KB Output is correct
2 Incorrect 1 ms 4444 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 114 ms 8696 KB Output is correct
2 Correct 470 ms 8720 KB Output is correct
3 Correct 116 ms 8700 KB Output is correct
4 Correct 112 ms 8700 KB Output is correct
5 Correct 111 ms 8536 KB Output is correct
6 Correct 1 ms 4440 KB Output is correct
7 Incorrect 1 ms 4444 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 20084 ms 19980 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 118 ms 8540 KB Output is correct
2 Correct 467 ms 8784 KB Output is correct
3 Correct 113 ms 8540 KB Output is correct
4 Correct 113 ms 8540 KB Output is correct
5 Correct 112 ms 8592 KB Output is correct
6 Execution timed out 20036 ms 19984 KB Time limit exceeded
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 117 ms 8540 KB Output is correct
2 Correct 466 ms 8708 KB Output is correct
3 Correct 115 ms 8540 KB Output is correct
4 Correct 112 ms 8536 KB Output is correct
5 Correct 113 ms 8700 KB Output is correct
6 Execution timed out 20024 ms 19984 KB Time limit exceeded
7 Halted 0 ms 0 KB -