Gửi bài giải

Điểm: 20
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

Dữ liệu tài chính của một công ty trong \(n\) ngày được biểu diễn bằng một đấy số \(t_1,t_2,\ldots,t_n\), trong đót \(t_i\) \((1 \leq i \leq n)\) là lượng tiền thu về của ngày thứ \(i\). Lãnh đạo công ty thường xuyên yêu cầu thống kê số liệu về tổng tiền lớn nhất thu được của hai ngày liên tiếp trong các ngày từ ngày \(L\) đến ngày \(R\) \((L < R)\), nghĩa là cần tìm giá trị lớn nhất trong các giá trị \((t_i + t_{i + 1})\) với \(L \leq i < R\).

Một nhân viên đã truy cập trái phép dữ liệu của công ty và trước mỗi lần lãnh đạo công ty yêu cầu thống kê số liệu, nhân viên sẽ tìm cách đảo ngược một đoạn dữ liệu nào đó trong các ngày từ ngày \(L\) đến ngày \(R\) với mục đích khi thống kê dữ liệu trong đoạn từ ngày \(L\) đến ngày \(R\) thì giá trị trả về càng lớn càng tốt. Ví dụ, nếu đảo ngược đoạn từ ngày \(i\) đến ngày \(j\) \((1 \leq L \leq i \leq j \leq R \leq n)\) trên dữ liệu ban đầu \(t_1, t_2, \ldots, t_i, t_{i + 1}, \ldots, t_j, \ldots, t_n\) thì dữ liệu thay đổi là \(t_1, t_2, \ldots, t_j, t_{j - 1}, \ldots, t_i, \ldots, t_n\). Sau khi thống kê số liệu xong, người này này sẽ lại thay đổi dữ liệu như ban đầu.

Yêu cầu

  • Cho biết dữ liệu ban đầu là \(t_1,t_2,\ldots,t_n\) và \(q\) lần yêu cầu thông kê dữ liệu, hãy cho biết số liệu thống kê trả về khi bị can thiệp vào dữ liệu.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dương \(n, q\);
  • Dòng thứ hai chứa \(n\) số nguyên không âm \(t_1,t_2,\ldots,t_n\) \((t_i \leq 10^9)\);
  • Dòng thứ \(k\) (\(1 \leq k \leq q\)) trong \(q\) dòng sau, mỗi dòng chứa hai số nguyên mô tả yêu cầu thống kê dữ liệu \(L, R\) \((1 \leq L < R \leq n)\).

Dữ liệu ra

  • Gồm \(q\) dòng, mỗi dòng chứa một số nguyên là giá trị mà lãnh đạo công ty nhận được khi yêu cầu thống kê dữ liệu tương ứng trong file dữ liệu vào.

Scoring

  • Subtask \(1\) (\(50\) điểm): \(n, q \leq 50\);
  • Subtask \(2\) (\(25\) điểm): \(n, q \leq 5000\);
  • Subtask \(3\) (\(25\) điểm): \(n, q \leq 10^5\).

Input 1

5 2
5 2 3 1 3
1 5
4 5

Output 1

8
4

Note

  • Với yêu cầu thống kê thứ nhất, đảo ngược đoạn từ ngày \(1\) đến ngày \(2\) để có dữ liệu mới: \(2\) \(5\) \(3\) \(1\) \(3\), kết quả thống kê được là \(8\).
  • Với yêu cầu thống kê thứ hai, đảo ngược đoạn từ ngày \(4\) đến ngày \(5\) để có dữ liệu mới: \(5\) \(2\) \(3\) \(3\) \(1\), kết quả thống kê được là \(4\).

Nhận xét

Không có ý kiến tại thời điểm này.