제출 #827286

#제출 시각아이디문제언어결과실행 시간메모리
827286vjudge1Zemljište (COCI22_zemljiste)C++17
30 / 70
2066 ms6568 KiB
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt") #pragma GCC optimize("O3","unroll-loops") #include<iostream> #include<vector> #include<iomanip> #include<algorithm> #include<map> #include<set> #include<climits> #include<numeric> #include<queue> #include<unordered_map> #include<string> #include<climits> #include<unordered_set> #include<bitset> #include<cstring> #include<cmath> #include<stack> #if 1 #define pb push_back #define st first #define nd second #define endl '\n' #define fio ios_base::sync_with_stdio(false);cin.tie(NULL); #define N ((int)(2e5+5)) #define int long long int using namespace std; typedef vector<int> vi; typedef pair<int, int> pii; typedef vector<vi> vivi; typedef pair<char,int> pci; const int inf = 1e18 + 5; #endif vivi pref(501, vi(501)), g(501, vi(501)); int r, s, a, b; int get(int x, int y, int xx, int yy){ int sum = pref[xx][yy]; sum -= pref[xx][y]; sum -= pref[x][yy]; sum += pref[x][y]; return sum; } void build(){ for(int i = 1; i <= r; ++i){ for(int j = 1; j <= s; ++j){ pref[i][j] = pref[i-1][j] + pref[i][j-1] - pref[i-1][j-1] + g[i][j]; } } } void solve(){ cin >> r >> s >> a >> b; for(int i = 1; i <= r; ++i){ for(int j = 1; j <= s; ++j){ cin >> g[i][j]; } } build(); int ans = inf; for(int li = 1; li <= r; ++li){ for(int ri = li; ri <= r; ++ri){ for(int lj = 1; lj <= s; ++lj){ for(int rj = lj; rj <= s; ++rj){ int cur = get(li - 1, lj - 1, ri, rj); ans = min(ans, abs(cur - a) + abs(cur - b)); //cout << li << ' ' << lj << ' ' << ri << ' ' << rj << ' ' << cur << endl; } } } } cout << ans << endl; } signed main(){ //fileio("test"); // Don't forget to comment out fio; //int t;cin >> t;while(t--) solve(); } /* */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...