제출 #189132

#제출 시각아이디문제언어결과실행 시간메모리
189132NicksechkoMaxcomp (info1cup18_maxcomp)C++14
100 / 100
190 ms21128 KiB
#include <vector> #include <iostream> #include <algorithm> using namespace std; const int inf = 1'000'000'088; template<typename T> T& InplaceMin(T& a, const T& b) { return a = min(a, b); } template<typename T> T& InplaceMax(T& a, const T& b) { return a = max(a, b); } int Calc(const vector<vector<int>>& a) { int result = -inf; vector<int> mins(a[0].size(), inf); for (const auto& row : a) { int pref_min = inf; for (int j = 0; j < row.size(); ++j) { mins[j] = min(mins[j], pref_min) + 1; pref_min = InplaceMin(mins[j], row[j] + 1); InplaceMax(result, row[j] - mins[j]); } } return result; } void Rotate(vector<vector<int>>& a) { int n = a.size(), m = a[0].size(); vector<vector<int>> new_a(m, vector<int>(n)); for (int i = 0; i < a.size(); ++i) { for (int j = 0; j < a[i].size(); ++j) { new_a[j][n - i - 1] = a[i][j]; } } a = new_a; } void Solve(istream& in, ostream& out) { int n = 0, m; in >> n >> m; vector<vector<int>> a(n, vector<int>(m)); for (auto& row : a) { for (int& item : row) { in >> item; } } int ans = -1; for (int i = 0; i < 4; i++) { Rotate(a); InplaceMax(ans, Calc(a)); } out << ans << endl; } int main() { std::ios_base::sync_with_stdio(false); Solve(cin, cout); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

maxcomp.cpp: In function 'int Calc(const std::vector<std::vector<int> >&)':
maxcomp.cpp:25:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int j = 0; j < row.size(); ++j) {
                         ~~^~~~~~~~~~~~
maxcomp.cpp: In function 'void Rotate(std::vector<std::vector<int> >&)':
maxcomp.cpp:39:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < a.size(); ++i) {
                     ~~^~~~~~~~~~
maxcomp.cpp:40:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int j = 0; j < a[i].size(); ++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...