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