计蒜客第四章:逃生
发布日期:2022-02-01 13:46:33 浏览次数:26 分类:技术文章

本文共 2084 字,大约阅读时间需要 6 分钟。

计蒜客习题:逃生

题目

在这里插入图片描述

在这里插入图片描述

样例

在这里插入图片描述

代码

#include
using namespace std;int a[1005][1005];int main(){
int n,m,x,y,v,c; cin>>n>>m>>x>>y>>v>>c; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; a[x][y]=v; for(int i=x-1;i>=1;i--) {
if(a[i+1][y]>0) a[i][y]+=a[i+1][y]; else a[i][y]=-1; if(a[i][y]>c) a[i][y]=c; } for(int i=x+1;i<=n;i++) {
if(a[i-1][y]>0) a[i][y]+=a[i-1][y]; else a[i][y]=-1; if(a[i][y]>c) a[i][y]=c; } for(int i=y+1;i<=n;i++) {
if(a[x][i-1]>0) a[x][i]+=a[x][i-1]; else a[x][i]=-1; if(a[x][i]>c) a[x][i]=c; } for(int i=y-1;i>=1;i--) {
if(a[x][i+1]>0) a[x][i]+=a[x][i+1]; else a[x][i]=-1; if(a[x][i]>c) a[x][i]=c; } for(int i=x-1;i>=1;i--) for(int j=y-1;j>=1;j--) {
if(a[i+1][j]>0&&a[i][j+1]>0) a[i][j]+=max(a[i+1][j],a[i][j+1]); else if(a[i+1][j]>0) a[i][j]+=a[i+1][j]; else if(a[i][j+1]>0) a[i][j]+=a[i][j+1]; else a[i][j]=-1; if(a[i][j]>c) a[i][j]=c; } for(int i=x+1;i<=n;i++) for(int j=y-1;j>=1;j--) {
if(a[i-1][j]>0&&a[i][j+1]>0) a[i][j]+=max(a[i-1][j],a[i][j+1]); else if(a[i-1][j]>0) a[i][j]+=a[i-1][j]; else if(a[i][j+1]>0) a[i][j]+=a[i][j+1]; else a[i][j]=-1; if(a[i][j]>c) a[i][j]=c; } for(int i=x-1;i>=1;i--) for(int j=y+1;j<=m;j++) {
if(a[i+1][j]>0&&a[i][j-1]>0) a[i][j]+=max(a[i+1][j],a[i][j-1]); else if(a[i+1][j]>0) a[i][j]+=a[i+1][j]; else if(a[i][j-1]>0) a[i][j]+=a[i][j-1]; else a[i][j]=-1; if(a[i][j]>c) a[i][j]=c; } for(int i=x+1;i<=n;i++) for(int j=y+1;j<=m;j++) {
if(a[i-1][j]>0&&a[i][j-1]>0) a[i][j]+=max(a[i-1][j],a[i][j-1]); else if(a[i-1][j]>0) a[i][j]+=a[i-1][j]; else if(a[i][j-1]>0) a[i][j]+=a[i][j-1]; else a[i][j]=-1; if(a[i][j]>c) a[i][j]=c; } cout<

转载地址:https://blog.csdn.net/shidonghang/article/details/102539698 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:计蒜客第四章:捡水果
下一篇:计蒜客第三章:方程的解数

发表评论

最新留言

很好
[***.229.124.182]2024年04月12日 11时16分51秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章