Submission #165162

#TimeUsernameProblemLanguageResultExecution timeMemory
165162Atill83Bob (COCI14_bob)C++14
0 / 120
188 ms25292 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define endl '\n' using namespace std; const long long INF = (long long) 1e18; const int mod = (int) 1e9+7; const int MAXN = (int) 1e3+5; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; typedef pair<ll,ll> pll; ll n; ll a[MAXN][MAXN]; ll us[MAXN][MAXN]; ll ans[MAXN][MAXN]; stack<int> s; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr); #ifdef Local freopen("../IO/int.txt","r",stdin); freopen("../IO/out.txt","w",stdout); #endif int m; cin>>n>>m; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cin>>a[i][j]; } } ll an = 0; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ us[i][j] = 1; if(i != 0 && a[i - 1][j] == a[i][j]) us[i][j] += us[i - 1][j]; } } for(ll i = 0; i < n; i++){ for(ll j = 0; j < m; j++){ if(j == 0 || a[i][j] != a[i][j - 1]){ while(!s.empty()) s.pop(); s.push(j); ans[i][j] = us[i][j]; }else{ while(!s.empty() && us[i][s.top()] > us[i][j]){ s.pop(); } ll l = (s.empty() ? -1 : s.top()); ans[i][j] += (s.empty() ? 0 : ans[i][s.top()]) + (j - l)*us[i][j]; s.push(j); } an += ans[i][j]; //cout<<ans[i][j]<<" "; }//cout<<endl; } cout<<an<<endl; #ifdef Local cout<<endl<<fixed<<setprecision(2)<<1000.0 * clock() / CLOCKS_PER_SEC<< " milliseconds "; #endif }
#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...