Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
57507 | 112 | J4 | C++ | 运行超时 | 0 | 1000 MS | 15272 KB | 1134 | 2022-10-04 11:31:20 |
#include<bits/stdc++.h> using namespace std; typedef unsigned long long ll; char d[1001][1001]; ll n,m,ma[1001][1001],ans[1001][1001],maa[1001][1001],anss; ll walk(ll i,ll j,ll st){ ll a=0; if(st%2==1) a+=maa[i][j]; else a-=maa[i][j]; st++; maa[i][j]=-maa[i][j]; if(d[i][j]=='^'){ if(i-1>=n&&i-1<=1) return a; else return a=walk(i-1,j,st); } if(d[i][j]=='v'){ if(i+1>=n&&i+1<=1) return a; else return a=walk(i+1,j,st); } if(d[i][j]=='<'){ if(j-1>=m&&j-1<=1) return a; else return a=walk(i,j-1,st); } if(d[i][j]=='>'){ if(j+1>=m&&j+1<=1) return a; else return a=walk(i,j+1,st); } } int main() { cin>>n>>m; for(ll i=1;i<=n;i++){ string s; cin>>s; for(int j=1;j<=m;j++) d[i][j]=s[j]; } for(ll ii=1;ii<=n;ii++) for(ll jj=1;jj<=m;jj++) cin>>ma[ii][jj],maa[ii][jj]=ma[ii][jj]; for(ll i=1;i<=n;i++) for(ll j=1;j<=m;j++){ ans[i][j]=walk(i,j,1); for(int ii=1;ii<=n;ii++) for(int jj=1;jj<=m;jj++) maa[ii][jj]=ma[ii][jj]; anss+=ans[i][j]; } cout<<endl; cout<<anss<<endl; return 0; }