9 {
10 vector<vector<long long>> prefix((int)grid.size(), vector<long long>((int)grid[0].size()));
11 for (int i = 0; i < (int)grid.size(); ++i)
12 for (int j = 0; j < (int)grid[0].size(); ++j)
13 if (j == 0)
14 prefix[i][j] = grid[i][j];
15 else
16 prefix[i][j] = grid[i][j] + prefix[i][j - 1];
17
18 long long result = LLONG_MAX;
19 for (int j = 0; j < (int)grid[0].size(); ++j)
20 {
21 long long top = (j != (int)grid[0].size() - 1) ? prefix[0][(int)grid[0].size() - 1] - prefix[0][j] : 0;
22 long long bottom = (j != 0) ? prefix[1][j - 1] : 0;
23 long long second_robot = max(top, bottom);
24 result = min(result, second_robot);
25 }
26
27 return result;
28 }