提出 #34018148
ソースコード 拡げる
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXn = 2e3;
const int MAXm = 2e3;
const int INF = 0x3f3f3f3f3f3f3f3f;
template<typename T>
inline void read(T &a) {
char c;for (c = getchar(); (c < '0' || c > '9') && c != '-'; c = getchar());bool f = c == '-';T x = f ? 0 : (c ^ '0');for (c = getchar(); c >= '0' && c <= '9'; c = getchar()) {x = x * 10 + (c ^ '0');}a = f ? -x : x;
}
template<typename T, typename ...Argv>
inline void read(T &a, Argv &...argv) {
read(a), read(argv...);
}
int n, m;
char a[MAXn + 10][MAXm + 10];
int wein[MAXn + 10], weim[MAXm + 10];
int d[MAXn + 10][MAXm + 10][2][2];
signed main() {
read(n, m);
for (int i = 1; i <= n; ++i) {
read(wein[i]);
}
// reverse(wein + 1, wein + 1 + n);
for (int i = 1; i <= m; ++i) {
read(weim[i]);
}
// reverse(weim + 1, weim + 1 + m);
for (int i = 1; i <= n; ++i) {
scanf("%s", a[i] + 1);
}
memset(d, 0x3f, sizeof(d));
d[1][1][0][0] = 0;
d[1][1][1][0] = wein[1];
d[1][1][0][1] = weim[1];
d[1][1][1][1] = wein[1] + weim[1];
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
// if (i + 1 <= n) {
// if (a[i][j] == a[i + 1][j]) {
// d[i + 1][j][0][0] = min(d[i + 1][j][0][0], d[i][j][0][0]);
// d[i + 1][j][0][1] = min(d[i + 1][j][0][1], d[i][j][0][1]);
// d[i + 1][j][1][0] = min(d[i + 1][j][1][0], d[i][j][1][0] + wein[i + 1]);
// d[i + 1][j][1][1] = min(d[i + 1][j][1][1], d[i][j][1][1] + wein[i + 1]);
// } else {
// d[i + 1][j][0][0] = min(d[i + 1][j][0][0], d[i][j][1][0] + wein[i + 1]);
// d[i + 1][j][0][1] = min(d[i + 1][j][0][1], d[i][j][1][1] + wein[i + 1]);
// d[i + 1][j][1][0] = min(d[i + 1][j][1][0], d[i][j][0][0]);
// d[i + 1][j][1][1] = min(d[i + 1][j][1][1], d[i][j][0][1]);
// }
// }
// if (j + 1 <= m) {
// if (a[i][j] == a[i][j + 1]) {
// d[i][j + 1][0][0] = min(d[i][j + 1][0][0], d[i][j][0][0]);
// d[i][j + 1][1][0] = min(d[i][j + 1][1][0], d[i][j][1][0]);
// d[i][j + 1][0][1] = min(d[i][j + 1][0][1], d[i][j][0][1] + weim[j + 1]);
// d[i][j + 1][1][1] = min(d[i][j + 1][1][1], d[i][j][1][1] + weim[j + 1]);
// } else {
// d[i][j + 1][0][0] = min(d[i][j + 1][0][0], d[i][j][0][1] + weim[j + 1]);
// d[i][j + 1][1][0] = min(d[i][j + 1][1][0], d[i][j][1][1] + weim[j + 1]);
// d[i][j + 1][0][1] = min(d[i][j + 1][0][1], d[i][j][0][0]);
// d[i][j + 1][1][1] = min(d[i][j + 1][1][1], d[i][j][1][0]);
// }
// }
if (i + 1 <= n) {
if (a[i][j] == a[i + 1][j]) {
d[i + 1][j][0][0] = min(d[i + 1][j][0][0], d[i][j][0][0]);
d[i + 1][j][0][1] = min(d[i + 1][j][0][1], d[i][j][0][1]);
d[i + 1][j][1][0] = min(d[i + 1][j][1][0], d[i][j][1][0] + wein[i + 1]);
d[i + 1][j][1][1] = min(d[i + 1][j][1][1], d[i][j][1][1] + wein[i + 1]);
} else {
d[i + 1][j][0][0] = min(d[i + 1][j][0][0], d[i][j][1][0]);
d[i + 1][j][0][1] = min(d[i + 1][j][0][1], d[i][j][1][1]);
d[i + 1][j][1][0] = min(d[i + 1][j][1][0], d[i][j][0][0] + wein[i + 1]);
d[i + 1][j][1][1] = min(d[i + 1][j][1][1], d[i][j][0][1] + wein[i + 1]);
}
}
if (j + 1 <= m) {
if (a[i][j] == a[i][j + 1]) {
d[i][j + 1][0][0] = min(d[i][j + 1][0][0], d[i][j][0][0]);
d[i][j + 1][1][0] = min(d[i][j + 1][1][0], d[i][j][1][0]);
d[i][j + 1][0][1] = min(d[i][j + 1][0][1], d[i][j][0][1] + weim[j + 1]);
d[i][j + 1][1][1] = min(d[i][j + 1][1][1], d[i][j][1][1] + weim[j + 1]);
} else {
d[i][j + 1][0][0] = min(d[i][j + 1][0][0], d[i][j][0][1]);
d[i][j + 1][1][0] = min(d[i][j + 1][1][0], d[i][j][1][1]);
d[i][j + 1][0][1] = min(d[i][j + 1][0][1], d[i][j][0][0] + weim[j + 1]);
d[i][j + 1][1][1] = min(d[i][j + 1][1][1], d[i][j][1][0] + weim[j + 1]);
}
}
}
}
int ans = min(min(min(d[n][m][0][0], d[n][m][0][1]), d[n][m][1][0]), d[n][m][1][1]);
printf("%lld\n", ans);
}
提出情報
コンパイルエラー
./Main.cpp: In function ‘int main()’:
./Main.cpp:32:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
32 | scanf("%s", a[i] + 1);
| ~~~~~^~~~~~~~~~~~~~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
500 / 500 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 000.txt |
AC |
86 ms |
129976 KiB |
| 001.txt |
AC |
84 ms |
129880 KiB |
| 002.txt |
AC |
114 ms |
133852 KiB |
| 003.txt |
AC |
115 ms |
133716 KiB |
| 004.txt |
AC |
115 ms |
134032 KiB |
| 005.txt |
AC |
116 ms |
133960 KiB |
| 006.txt |
AC |
139 ms |
133804 KiB |
| 007.txt |
AC |
139 ms |
133800 KiB |
| 008.txt |
AC |
138 ms |
133960 KiB |
| 009.txt |
AC |
139 ms |
133920 KiB |
| 010.txt |
AC |
139 ms |
133964 KiB |
| 011.txt |
AC |
138 ms |
133804 KiB |
| 012.txt |
AC |
139 ms |
133964 KiB |
| 013.txt |
AC |
90 ms |
131692 KiB |
| 014.txt |
AC |
97 ms |
131916 KiB |
| 015.txt |
AC |
101 ms |
131220 KiB |
| 016.txt |
AC |
124 ms |
133960 KiB |
| 017.txt |
AC |
84 ms |
130528 KiB |
| 018.txt |
AC |
97 ms |
131356 KiB |
| 019.txt |
AC |
111 ms |
132288 KiB |
| 020.txt |
AC |
101 ms |
131508 KiB |
| 021.txt |
AC |
94 ms |
130668 KiB |
| 022.txt |
AC |
92 ms |
130792 KiB |
| 023.txt |
AC |
140 ms |
133924 KiB |
| 024.txt |
AC |
138 ms |
133964 KiB |
| 025.txt |
AC |
140 ms |
133884 KiB |
| 026.txt |
AC |
138 ms |
134032 KiB |
| 027.txt |
AC |
139 ms |
133960 KiB |
| 028.txt |
AC |
141 ms |
134028 KiB |
| 029.txt |
AC |
138 ms |
133776 KiB |
| 030.txt |
AC |
139 ms |
133924 KiB |
| 031.txt |
AC |
140 ms |
133920 KiB |
| 032.txt |
AC |
139 ms |
133772 KiB |
| 033.txt |
AC |
137 ms |
133912 KiB |
| 034.txt |
AC |
138 ms |
133964 KiB |
| 035.txt |
AC |
139 ms |
133912 KiB |
| 036.txt |
AC |
137 ms |
133912 KiB |
| 037.txt |
AC |
138 ms |
133920 KiB |
| 038.txt |
AC |
137 ms |
134032 KiB |
| 039.txt |
AC |
139 ms |
133916 KiB |
| 040.txt |
AC |
137 ms |
133840 KiB |
| 041.txt |
AC |
144 ms |
134036 KiB |
| 042.txt |
AC |
137 ms |
133856 KiB |
| example0.txt |
AC |
82 ms |
129976 KiB |
| example1.txt |
AC |
83 ms |
129956 KiB |