제출 #1144815

#제출 시각아이디문제언어결과실행 시간메모리
1144815sano삶의 질 (IOI10_quality)C++20
100 / 100
1320 ms71020 KiB
//#include "quality.h" #include<iostream> #include<vector> #include<queue> #include<deque> #include<string> #include<fstream> #include<algorithm> #include <iomanip> #include<map> #include <set> #include <unordered_map> #include <stack> #include <unordered_set> #include <cmath> #include <cstdint> #define shit short int #define ll long long #define For(i, n) for(int i = 0; i < (int)n; i++) #define ffor(i, a, n) for(int i = (int)a; i < (int)n; i++) #define rfor(i, n) for(int i = (int)n; i >= (int)0; i--) #define rffor(i, a, n) for(int i = (int)n; i >= (int)a; i--) #define vec vector #define ff first #define ss second #define pb push_back #define pii pair<int, int> #define NEK 1000000000 #define mod 1000000007 #define mod2 1000000009 #define rsz resize #define prv1 43 #define prv2 47 #define D 8 #define trav(a,x) for (auto& a: x) #define pb push_back #define ub upper_bound #define lb lower_bound #define sig 0.0000001 using namespace std; int rectangle(int r, int c, int h, int w, int p[3001][3001]) { vec<vec<int>> ps(r + 1, vec<int>(c + 1, 0)); int le = 0; int ri = NEK; while (le < ri) { int mid = (le + ri) / 2; ffor(i, 1, r+1) { ffor(j, 1, c+1) { ps[i][j] = ps[i - 1][j] + ps[i][j - 1] - ps[i - 1][j - 1] + (p[i - 1][j - 1] > mid) * 2 - 1; } } int hod = 1; For(i, (r - h + 1)) { For(j, (c - w + 1)) { hod = min(hod, ps[i + h][j + w] - ps[i][j + w] - ps[i + h][j] + ps[i][j]); } } if (hod <= 0) ri = mid; else le = mid + 1; } return le; }
#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...