//#include //#include //#include // //using namespace std; // //int n, m; //long long sum; // //// 输出矩阵(调试用) //void out(const vector>& a) { // int n = a.size(); // if (n == 0) return; // int m = a[0].size(); // for (int i = 0; i < n; i++) { // for (int j = 0; j < m; j++) { // cout << a[i][j] << " "; // } // cout << endl; // } //} // //// 递归函数:选择向量的头或尾来查找最大值 //long long findMaxRecursive(const vector& b, int left, int right, int power) { // if (left > right) { // return 0; // } // if (left == right) { // return b[left] * (1LL << power); // } // long long maxHead = findMaxRecursive(b, left + 1, right, power + 1) + b[left] * (1LL << power); // long long maxTail = findMaxRecursive(b, left, right - 1, power + 1) + b[right] * (1LL << power); // return max(maxHead, maxTail); //} // //long long solve(const vector>& matrix) { // long long totalMaxScore = 0; // for (const auto& row : matrix) { // totalMaxScore += findMaxRecursive(row, 0, row.size() - 1, 1); // } // return totalMaxScore; //} // //int main() { // cin >> n >> m; // // vector> a(n, vector(m)); // // // 读取输入 // for (int i = 0; i < n; i++) { // for (int j = 0; j < m; j++) { // cin >> a[i][j]; // } // } // // cout << solve(a) << endl; // // return 0; //}