Submission #469140

#TimeUsernameProblemLanguageResultExecution timeMemory
469140ala2Bob (COCI14_bob)C++14
0 / 120
527 ms24016 KiB
#include <bits/stdc++.h>
#define ff first
#define ss second
#define int long long
using namespace std;
int a[1010][1010];
int dpr[1010][1010];
int dpc[1010][1010];

signed main()
{
    int n;
    cin>>n;
    int m;
    cin>>m;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
            cin>>a[i][j];
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            dpc[i][j]=1;
            dpr[i][j]=1;
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(i>0)
            {
                if(a[i][j]==a[i-1][j])
                {
                    dpr[i][j]=dpr[i-1][j]+1;
                }
            }
            if(j>0)
            {
                if(a[i][j]==a[i][j-1])
                {
                    dpc[i][j]=dpc[i][j-1]+1;
                }
            }
        }
    }//   ff for c    ss for r
     int ans=0;
     for(int i=0;i<n;i++)
     {
         for(int j=0;j<m;j++)
         { //cout<<dpr[i][j]<<" ";
             int mn=1e17;
             ans+=dpr[i][j];
             for(int k=j-1;k>=0;k--)
             {
                 if(a[i][k]!=a[i][k+1])
                    break;
                 mn=min(mn,dpr[i][k]);
                 ans+=mn;


             }
           //  cout<<" :"<<ans<<"   ";
         }
       //  cout<<endl;
     }
     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...