Submission #1215976

#TimeUsernameProblemLanguageResultExecution timeMemory
1215976Robert_juniorBob (COCI14_bob)C++20
72 / 120
193 ms68948 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define all(x) x.begin(), x.end() #define ins insert #define pb push_back #define F first #define S second const int N = 1e6 + 7, M = 5e5 + 7; const int mod = 1e9 + 7; int h[1010][1010], a[1010][1010]; vector<pair<int, int>>pos[N]; void solve(){ int n, m; cin>>n>>m; vector<int>v; for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ cin>>a[i][j]; v.pb(a[i][j]); } } sort(all(v)); v.erase(unique(all(v)), v.end()); for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ a[i][j] = upper_bound(all(v), a[i][j]) - v.begin(); pos[a[i][j]].pb({i, j}); } } int ans = 0; for(int i = n; i >= 1; i--){ for(int j = m; j >= 1; j--){ if(a[i + 1][j] == a[i][j]){ h[i][j] = (h[i + 1][j] + 1); } else{ h[i][j] = 1; } } } for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ int mn = h[i][j]; for(int k = j; k <= m && a[i][j] == a[i][k]; k++){ mn = min(mn, h[i][k]); ans += mn; } } } cout<<ans<<'\n'; } signed main(){ ios_base :: sync_with_stdio(false); cin.tie(nullptr); int t = 1; //cin>>t; for(int i = 1; i <= t; i++){ //cout<<"Case "<<i<<": "; solve(); } }
#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...