Submission #1221569

#TimeUsernameProblemLanguageResultExecution timeMemory
1221569vehamT-Covering (eJOI19_covering)C++20
5 / 100
111 ms8208 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vvi; const vi X8 = {1,1,1,0-1,-1,-1,0}; const vi Y8 = {-1,0,1,1,1,0-1,-1}; const vi X4 = {2,0,-2,0}; const vi Y4 = {0,2,0,-2}; int Calc(int m, int n, vvi &B, int k, vi &R, vi &C){ vvi P(m,vi(n,-1)); for(int i = 0;i < k;i++) P[R[i]][C[i]] = i; vi vis(k,0); ll ans = 0; for(int i = 0;i < k;i++){ ans += B[R[i]][C[i]]; if(!(R[i] % (m-1))){ if(!(C[i] % (n-1))){ return -1; } ans += B[R[i]][C[i]-1] + B[R[i]][C[i]+1] + B[R[i] + (R[i] ? -1 : 1)][C[i]]; } else{ if(!(C[i] % (n-1))) ans += B[R[i]-1][C[i]] + B[R[i]+1][C[i]] + B[R[i]][C[i] + (C[i] ? -1 : 1)]; else{ ans += B[R[i]][C[i]-1] + B[R[i]][C[i]+1] + B[R[i] - 1][C[i]] + B[R[i] + 1][C[i]]; ans -= min({B[R[i]][C[i]-1],B[R[i]][C[i]+1],B[R[i] - 1][C[i]],B[R[i] + 1][C[i]]}); } } } return ans; } int main(){ int n,m; cin >> m >> n; vvi B(m,vi(n)); for(int i = 0;i < m;i++) for(int j = 0;j < n;j++) cin >> B[i][j]; int k; cin >> k; vi R(k),C(k); for(int i = 0;i < k;i++) cin >> R[i] >> C[i]; cout << Calc(m,n,B,k,R,C); 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...