| Run ID | Author | Problem | Lang | Verdict | Score | Time | Memory | Code Length | Submit Time |
|---|---|---|---|---|---|---|---|---|---|
| 19543 | 孙文谦 | 方格取数 | C++ | Accepted | 100 | 1 MS | 292 KB | 730 | 2021-05-16 16:56:28 |
#include<bits/stdc++.h> using namespace std; typedef long long ll; int a[102][102],n,m,s,maxn; void dfs(int t,int k ,int temp) { if(a[t][k]>=a[t-1][k]&&a[t][k]>=a[t+1][k]&&a[t][k]>=a[t][k+1]&&a[t][k]>=a[t][k-1]) { maxn=max(temp,maxn); return; } if(a[t][k]<a[t+1][k]) dfs(t+1,k,temp+a[t+1][k]); if(a[t][k]<a[t-1][k]) dfs(t-1,k,temp+a[t-1][k]); if(a[t][k]<a[t][k+1]) dfs(t,k+1,temp+a[t][k+1]); if(a[t][k]<a[t][k-1]) dfs(t,k-1,temp+a[t][k-1]); } int main() { cin>>n>>m>>s; for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { s=s*345%19997; a[i][j]=s%10+1; } } for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) dfs(i,j,a[i][j]); } cout<<maxn<<endl; return 0; }