Submission #1321269

#TimeUsernameProblemLanguageResultExecution timeMemory
1321269SmuggingSpunRectangles (IOI19_rect)C++20
27 / 100
1974 ms22664 KiB
#include "rect.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; template<class T>void maximize(T& a, T b){ if(a < b){ a = b; } } vector<vector<int>>a; int n, m; namespace sub123{ bool check(int x, int y, int u, int v){ for(int i = x; i <= u; i++){ for(int j = y; j <= v; j++){ if(a[i][j] >= min({a[x - 1][j], a[u + 1][j], a[i][y - 1], a[i][v + 1]})){ return false; } } } return true; } ll solve(){ int ans = 0; for(int x = 1; x < n; x++){ for(int y = 1; y < m; y++){ for(int u = x; u + 1 < n; u++){ for(int v = y; v + 1 < m; v++){ if(check(x, y, u, v)){ ans++; } } } } } return ans; } } namespace sub5{ ll solve(){ int ans = 0; for(int l = 1; l < m; l++){ for(int r = l, mv = 0; r + 1 < m; r++){ maximize(mv, a[1][r]); if(a[1][r] > min(a[0][r], a[2][r]) || mv >= a[1][l - 1]){ break; } if(mv < a[1][r + 1]){ ans++; } } } return ans; } } ll count_rectangles(vector<vector<int>>_a){ swap(a, _a); if(max(n = a.size(), m = a[0].size()) <= 200){ return sub123::solve(); } if(n <= 3){ return sub5::solve(); } }

Compilation message (stderr)

rect.cpp: In function 'll count_rectangles(std::vector<std::vector<int> >)':
rect.cpp:64:1: warning: control reaches end of non-void function [-Wreturn-type]
   64 | }
      | ^
#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...