Submission #103747

#TimeUsernameProblemLanguageResultExecution timeMemory
103747MohamedAhmed0Bob (COCI14_bob)C++14
72 / 120
1076 ms8204 KiB
#include <bits/stdc++.h>
 
using namespace std;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

int main()
{
    int n , m ;
    scanf("%d %d" , &n , &m) ;
    int arr[n][m] , last[n][m];
    for(int i = 0 ; i < n ; ++i)
    {
        for(int j = 0 ; j < m ; ++j)
            scanf("%d" , &arr[i][j]) ;
    }
    for(int i = 0 ; i < n ; ++i)
    {
        last[i][m-1] = m-1 ;
        for(int j = m-2 ; j >= 0 ; --j)
        {
            if(arr[i][j] == arr[i][j+1])
                last[i][j] = last[i][j+1] ;
            else
                last[i][j] = j ;
        }
    }
    long long ans = 0ll ;
    for(int i = 0 ; i < n ; ++i)
    {
        for(int j = 0 ; j < m ; ++j)
        {
          	long long MIN = 1e9 ;
            for(int k = i ; k >= 0 ; --k)
            {
                if(arr[i][j] != arr[k][j])
                    break;
                MIN = min(MIN , last[k][j] - j + 1ll) ;
                ans += (MIN*1ll) ;
            }
        }
    }
    return printf("%lld" , ans) , 0 ;
}

Compilation message (stderr)

bob.cpp:5:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
 #pragma GCC optimization ("O3")
 
bob.cpp:6:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
 #pragma GCC optimization ("unroll-loops")
 
bob.cpp: In function 'int main()':
bob.cpp:11:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d" , &n , &m) ;
     ~~~~~^~~~~~~~~~~~~~~~~~~
bob.cpp:16:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d" , &arr[i][j]) ;
             ~~~~~^~~~~~~~~~~~~~~~~~~
#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...