Submission #1151456

#TimeUsernameProblemLanguageResultExecution timeMemory
1151456khangrlBob (COCI14_bob)C++20
0 / 120
62 ms16196 KiB
#include<bits/stdc++.h>
#define ff first
#define ss second
#define int long long
using namespace std;
int n, m, a[1005][1005], dp[1005][1005]={0};
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
	for(int i=1; i<=n; i++){
		for(int j=1; j<=m; j++){
			cin>>a[i][j];
			dp[i][j]=1;
			if(i==1){
				a[0][j]=0;
				dp[0][j]=0;
			}
			if(j==1){
				a[i][0]=0;
				dp[i][0]=0;
			}
		}
	}
	a[0][0]=0;
	dp[0][0]=0;
	int ans=0;
	for(int i=1; i<=n; i++){
		for(int j=1; j<=m; j++){
			if(a[i][j]==a[i-1][j]){
				dp[i][j]+=dp[i-1][j];
				if(a[i][j]==a[i-1][j-1]){
					dp[i][j]-=dp[i-1][j-1];
				}
			}
			if(a[i][j]==a[i][j-1]){
				dp[i][j]+=dp[i][j-1];
				if(a[i][j]==a[i-1][j-1]){
					dp[i][j]-=dp[i-1][j-1];
				}
			}
			if(a[i][j]==a[i-1][j-1] and a[i][j]==a[i-1][j] and a[i][j]==a[i][j-1]){
				dp[i][j]+=dp[i-1][j-1];
			}
			ans+=dp[i][j];
		}
	}
	cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...