Chia đôi đoạn con


Submit solution

Points: 3 (partial)
Time limit: 1.0s
Memory limit: 67M

Author:
Problem types
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Cho dãy số gồm n số nguyên không âm a1,a2,...,an. Với mỗi truy vấn dạng lr bạn hãy tìm chỉ số i(lir1) nhỏ nhất sao cho |(al+...+ai)(ai+1+..+ar)| đạt giá trị nhỏ nhất.

Đầu vào

Dòng đầu chứa số nguyên dương nq (2n,q105) là số phần tử của dãy và số lần truy vấn.

Dòng tiếp theo gồm n số nguyên không âm là các phần tử của dãy có giá trị không vượt quá 109.

q dòng tiếp theo, mỗi dòng gồm chứa hai số nguyên dương l,r (1l<rn).

Đầu ra

Một dòng duy nhất chứa n1 số tự nhiên.

Subtask

30% số test có nq106.

Ví dụ

Đầu vào:

Copy
6 3
1 2 3 4 5 6
1 6
2 5
3 4

Đầu ra:

Copy
4
3
3

Giải thích: Truy vấn đầu tiên ta chia thành hai đoạn a1,a2,a3,a4a5,a6, khác biệt nhỏ nhất là 1; truy vấn thứ hai chia thành hai đoạn a2,a3a4,a5, khác biệt nhỏ nhất là 4; truy vấn cuối cùng đoạn được chia thành a3a4 có khác biệt là 1.

QDUY

Comments

There are no comments at the moment.