提出 #54591529
ソースコード 拡げる
#include<iostream>
#include<vector>
#include<map>
#include<set>
#include<cassert>
#include<unordered_map>
#include<unordered_set>
#include<functional>
#include<queue>
#include<stack>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<sstream>
#include<iomanip>
#include<cstdio>
#include<cstdlib>
#include<numeric>
#include<random>
#include<chrono>
#include<bitset>
//#include<ext/pb_ds/assoc_container.hpp>
//#include<ext/pb_ds/tree_policy.hpp>
using namespace std;
//using namespace __gnu_pbds;
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define eb emplace_back
#define xx first
#define yy second
#define sz(x) (int)(x).size()
#define gc getchar
#define IO ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define mp make_pair
#define ins insert
#define chkmn(x,y) (x)=min((x), (y))
#define chkmx(x,y) (x)=max((x), (y))
#define rep(i,a,b) for(int i=a;i<b;i++)
#ifndef ONLINE_JUDGE
# define LOG(x) (cerr << #x << " = " << (x) << endl)
#else
# define LOG(x) ((void)0)
#endif
using ll = long long;
using ull = unsigned long long ;
using ld = long double ;
using str = string;
//using ordered_set=tree<pair<int,int>, null_type, less<pair<int,int>>, rb_tree_tag, tree_order_statistics_node_update>;
const double PI=acos(-1);
const ll INF = 1LL<<62;
const ll MINF = -(1LL<<62);
template<typename T> T getint() {
T val=0;
char c;
bool neg=false;
while((c=gc()) && !(c>='0' && c<='9')) {
neg|=c=='-';
}
do {
val=(val*10)+c-'0';
} while((c=gc()) && (c>='0' && c<='9'));
return val*(neg?-1:1);
}
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); uniform_int_distribution<int>(0, n-1)(rng)
int dx[5]={-1,1,0,0,0};
int dy[5]={0,0,-1,1,0};
int main() {
IO;
int h,w,k;
cin>>h>>w>>k;
int sx,sy;
cin>>sx>>sy;
vector<vector<int>> t(h, vector<int>(w));
for(int i=0;i<h;++i) {
for(int j=0;j<w;++j) cin>>t[i][j];
}
vector<vector<ll>> dp(h, vector<ll>(w,MINF));
dp[sx-1][sy-1]=0;
ll ans=MINF;
for(int c=0;c<min(k,h*w*2);++c) {
vector<vector<ll>> ndp(h, vector<ll>(w,MINF));
for(int i=0;i<h;++i) {
for(int j=0;j<w;++j) {
for(int l=0;l<5;++l) {
int ni=i+dx[l];
int nj=j+dy[l];
if(ni>=0 && nj>=0 && ni<h && nj<w) {
ndp[i][j]=max(ndp[i][j], dp[ni][nj]+t[i][j]);
}
}
}
}
dp.swap(ndp);
for(int i=0;i<h;++i) {
for(int j=0;j<w;++j) {
ll rem=k-c-1;
chkmx(ans, rem*t[i][j]+dp[i][j]);
}
}
}
cout<<ans<<"\n";
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
G - AtCoder Tour |
| ユーザ |
mraron |
| 言語 |
C++ 23 (gcc 12.2) |
| 得点 |
550 |
| コード長 |
2869 Byte |
| 結果 |
AC |
| 実行時間 |
151 ms |
| メモリ |
3672 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
550 / 550 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample00.txt, sample01.txt |
| All |
sample00.txt, sample01.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| sample00.txt |
AC |
1 ms |
3484 KiB |
| sample01.txt |
AC |
1 ms |
3540 KiB |
| testcase00.txt |
AC |
1 ms |
3400 KiB |
| testcase01.txt |
AC |
150 ms |
3672 KiB |
| testcase02.txt |
AC |
151 ms |
3672 KiB |
| testcase03.txt |
AC |
17 ms |
3340 KiB |
| testcase04.txt |
AC |
1 ms |
3536 KiB |
| testcase05.txt |
AC |
1 ms |
3612 KiB |
| testcase06.txt |
AC |
41 ms |
3608 KiB |
| testcase07.txt |
AC |
40 ms |
3480 KiB |
| testcase08.txt |
AC |
40 ms |
3464 KiB |
| testcase09.txt |
AC |
151 ms |
3472 KiB |
| testcase10.txt |
AC |
17 ms |
3596 KiB |
| testcase11.txt |
AC |
6 ms |
3516 KiB |
| testcase12.txt |
AC |
151 ms |
3404 KiB |
| testcase13.txt |
AC |
133 ms |
3544 KiB |
| testcase14.txt |
AC |
32 ms |
3664 KiB |
| testcase15.txt |
AC |
47 ms |
3664 KiB |
| testcase16.txt |
AC |
150 ms |
3608 KiB |
| testcase17.txt |
AC |
42 ms |
3644 KiB |
| testcase18.txt |
AC |
24 ms |
3476 KiB |
| testcase19.txt |
AC |
6 ms |
3508 KiB |
| testcase20.txt |
AC |
151 ms |
3516 KiB |
| testcase21.txt |
AC |
36 ms |
3568 KiB |
| testcase22.txt |
AC |
60 ms |
3476 KiB |
| testcase23.txt |
AC |
17 ms |
3376 KiB |
| testcase24.txt |
AC |
150 ms |
3536 KiB |
| testcase25.txt |
AC |
26 ms |
3444 KiB |
| testcase26.txt |
AC |
75 ms |
3476 KiB |
| testcase27.txt |
AC |
4 ms |
3496 KiB |
| testcase28.txt |
AC |
150 ms |
3524 KiB |
| testcase29.txt |
AC |
16 ms |
3424 KiB |
| testcase30.txt |
AC |
39 ms |
3528 KiB |
| testcase31.txt |
AC |
52 ms |
3600 KiB |
| testcase32.txt |
AC |
150 ms |
3468 KiB |
| testcase33.txt |
AC |
53 ms |
3516 KiB |