Submission #34003010


Source Code Expand

#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<algorithm>
#include<cstring>
using namespace std;

int n, m;
char arr[2010][2010];
long long r[2010];
long long c[2010];
long long dp[2010][2010][4];

int main()
{
	int i, j, k;

	cin >> n >> m;
	for (i = 0; i < n; i++)
	{
		cin >> r[i];
	}
	for (i = 0; i < m; i++)
	{
		cin >> c[i];
	}
	for (i = 0; i < n; i++)
	{
		cin >> arr[i];
	}

	memset(dp, 50, sizeof(dp));

	dp[0][0][0] = 0;
	dp[0][0][1] = c[0];
	dp[0][0][2] = r[0];
	dp[0][0][3] = c[0] + r[0];
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			if (i == 0 && j == 0) continue;

			for (k = 0; k < 4; k++)
			{
				if (i != 0)
				{
					if (arr[i - 1][j] == arr[i][j]) dp[i][j][k] = dp[i - 1][j][k] + ((k & 2) != 0) * r[i];
					else dp[i][j][k] = dp[i - 1][j][k ^ 2] + ((k & 2) != 0) * r[i];
				}
				if (j != 0)
				{
					if (arr[i][j - 1] == arr[i][j]) dp[i][j][k] = min(dp[i][j][k], dp[i][j - 1][k] + (k & 1) * c[j]);
					else dp[i][j][k] = min(dp[i][j][k], dp[i][j - 1][k ^ 1] + (k & 1) * c[j]);
				}
			}
		}
	}

	cout << min(min(dp[n - 1][m - 1][0], dp[n - 1][m - 1][1]), min(dp[n - 1][m - 1][2], dp[n - 1][m - 1][3]));
}

Submission Info

Submission Time
Task F - Monochromatic Path
User gojib2002
Language C++ (GCC 9.2.1)
Score 500
Code Size 1288 Byte
Status AC
Exec Time 222 ms
Memory 133808 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 2
AC × 45
Set Name Test Cases
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, example0.txt, example1.txt
Case Name Status Exec Time Memory
000.txt AC 91 ms 129684 KiB
001.txt AC 82 ms 129820 KiB
002.txt AC 188 ms 133636 KiB
003.txt AC 188 ms 133768 KiB
004.txt AC 188 ms 133736 KiB
005.txt AC 189 ms 133636 KiB
006.txt AC 219 ms 133728 KiB
007.txt AC 222 ms 133768 KiB
008.txt AC 218 ms 133740 KiB
009.txt AC 219 ms 133628 KiB
010.txt AC 218 ms 133752 KiB
011.txt AC 219 ms 133708 KiB
012.txt AC 218 ms 133612 KiB
013.txt AC 97 ms 131628 KiB
014.txt AC 119 ms 131716 KiB
015.txt AC 123 ms 131044 KiB
016.txt AC 179 ms 133732 KiB
017.txt AC 86 ms 130312 KiB
018.txt AC 118 ms 131124 KiB
019.txt AC 149 ms 132224 KiB
020.txt AC 128 ms 131428 KiB
021.txt AC 105 ms 130332 KiB
022.txt AC 104 ms 130684 KiB
023.txt AC 217 ms 133768 KiB
024.txt AC 218 ms 133732 KiB
025.txt AC 218 ms 133760 KiB
026.txt AC 219 ms 133772 KiB
027.txt AC 220 ms 133728 KiB
028.txt AC 220 ms 133740 KiB
029.txt AC 219 ms 133808 KiB
030.txt AC 218 ms 133748 KiB
031.txt AC 219 ms 133636 KiB
032.txt AC 218 ms 133796 KiB
033.txt AC 218 ms 133768 KiB
034.txt AC 221 ms 133632 KiB
035.txt AC 218 ms 133572 KiB
036.txt AC 218 ms 133572 KiB
037.txt AC 219 ms 133764 KiB
038.txt AC 218 ms 133796 KiB
039.txt AC 218 ms 133576 KiB
040.txt AC 219 ms 133740 KiB
041.txt AC 221 ms 133728 KiB
042.txt AC 216 ms 133628 KiB
example0.txt AC 83 ms 129692 KiB
example1.txt AC 80 ms 129816 KiB