# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
124512 | deinfreund | Orchard (NOI14_orchard) | C++14 | 476 ms | 112008 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int solve1D(vector<int> vals){
vector<int> sums(vals.size());
int totalTrees;
for (int x= 0; x < vals.size(); x++){
/*cin >> vals[x][y];
totalTrees[y] += vals[x][y];
vals[x][y] = 2 * vals[x][y] - 1;
if (x > 0) sums[x][y] += sums[x-1][y];
sums[x][y] += vals[x][y];*/
}
}
int main(){
int h, w;
cin >> h >> w;
vector<vector<int> > sums(w, vector<int>(h));
vector<int> totalTrees(h);
vector<vector<int> > vals(w, vector<int>(h));
for (int y = 0; y< h; y++){
for (int x= 0; x < w; x++){
cin >> vals[x][y];
totalTrees[y] += vals[x][y];
vals[x][y] = 2 * vals[x][y] - 1;
if (x > 0) sums[x][y] += sums[x-1][y];
sums[x][y] += vals[x][y];
}
}
for (int y = 0; y< h; y++){
int minv = 0;
int minx = -1;
int bests = 0;
int beste = 0;
int bestv = 0;
for (int x= 0; x < w; x++){
if (sums[x][y] < minv){
minv = sums[x][y];
minx = x;
}
int v = sums[x][y] - minv;
if (v > bestv){
bestv = v;
bests = minx;
beste = x;
}
}
//cout << bests << " - " << beste << ": " << bestv << endl;
cout << totalTrees[y] - bestv + beste - bests - bestv << endl;
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |