Submission #1173996

#TimeUsernameProblemLanguageResultExecution timeMemory
1173996andriy57T-Covering (eJOI19_covering)C++20
5 / 100
51 ms31556 KiB
#define _CRT_SECURE_NO_WARNINGS #include <bits/stdc++.h> using namespace std; #define forin for(int i = 1; i <= n; i++) #define stforin for(int i = 0; i < n; i++) #define forim for(int i = 1; i <= m; i++) #define forjn for(int j = 1; j <= n; j++) #define forch(j, n) for(int i = j; i <= n; i++) #define forch2(i, j, n) for(int i = j; i <= n; i++) #define forjm for(int j = 1; j <= m; j++) #define lol long long #define lb long double #define endl '\n' #define IOS ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define debug cout << "Completed" << endl #define No cout << "No" << endl #define Yes cout << "Yes" << endl #define bads cout << -1 << endl #define fix(n, m) cout << fixed; cout.precision(m); cout << n << endl #define pll pair<lol, lol> #define mod 1000000007 #define fst first #define snd second #define inf 1e15 #define tofix cin ; string sbuf; ostringstream buf(sbuf); istringstream atcin(sbuf); //priority_queue <pll, vector<pll>, greater<pll>> q const long long N = 1e6 + 10; lol ts, n, m, k, v1, v2, ans, m1, m2, m3, m4, ma; vector<lol> a[N]; lol hmm(int r, int c) { if (r < 0 || r >= n || c < 0 || c >= m || a[r][c] == -1) return 0; return 1; } lol cotum(int r, int c) { lol sum = 0; sum += a[r][c]; return sum; } void solve() { IOS; cin >> n >> m; stforin { a[i].resize(m); forch2(j, 0, m-1) cin >> a[i][j]; } cin >> k; forch(1, k) { cin >> v1 >> v2; m1 = m2 = m3 = m4 = -1; if (hmm(v1, v2 - 1) && hmm(v1, v2 + 1) && hmm(v1 - 1, v2)) m1 = cotum(v1, v2) + cotum(v1, v2 - 1) + cotum(v1, v2 + 1) + cotum(v1 - 1, v2); if (hmm(v1 - 1, v2) && hmm(v1, v2 + 1) && hmm(v1 + 1, v2)) m2 = cotum(v1, v2) + cotum(v1 - 1, v2) + cotum(v1, v2 + 1) + cotum(v1 + 1, v2); if (hmm(v1, v2 - 1) && hmm(v1, v2 + 1) && hmm(v1 + 1, v2)) m3 = cotum(v1, v2) + cotum(v1, v2 - 1) + cotum(v1, v2 + 1) + cotum(v1 + 1, v2); if (hmm(v1, v2 - 1) && hmm(v1 - 1, v2) && hmm(v1 + 1, v2)) m4 = cotum(v1, v2) + cotum(v1, v2 - 1) + cotum(v1 - 1, v2) + cotum(v1 + 1, v2); if (m1 == m2 && m2 == m3 && m3 == m4 && m4 == -1) { No; return; } ma = max({ m1, m2, m3 ,m4 }); a[v1][v2] = -1; if (ma == m1) { a[v1][v2-1] = -1; a[v1][v2+1] = -1; a[v1 - 1][v2+1] = -1; } else if (ma == m2) { a[v1 - 1][v2] = -1; a[v1][v2 + 1] = -1; a[v1 + 1][v2] = -1; } else if (ma == m3) { a[v1][v2 - 1] = -1; a[v1][v2 + 1] = -1; a[v1 + 1][v2] = -1; } else if (ma == m4) { a[v1][v2 - 1] = -1; a[v1 - 1][v2] = -1; a[v1 + 1][v2] = -1; } ans += ma; } cout << ans << endl; } int main() { ts = 1; //cin >> ts; while (ts--) solve(); return 0; }
#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...