一道尺取法 (连续最值)

来源:互联网 发布:淘宝外卖粮票是什么 编辑:程序博客网 时间:2024/06/05 18:08
#include <iostream>#include <algorithm>using namespace std;int main(){int a[365];//now first build an arrayint n;cin >> n;    for (int i = 1;i <= n;i ++)    cin >> a[i]; int i = 1,j = 1; int sum = 0; int minTime = 1000; while (j != n+1){ sum += a[j++]; minTime = min(abs(360-sum*2),minTime); while (sum >= 180){ sum -= a[i++]; minTime = min(abs(360-sum*2),minTime); } } cout << minTime << endl;return 0;}
A. Pizza Separation
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Students Vasya and Petya are studying at the BSU (Byteland State University). At one of the breaks they decided to order a pizza. In this problem pizza is a circle of some radius. The pizza was delivered already cut inton pieces. The i-th piece is a sector of angle equal to ai. Vasya and Petya want to divide all pieces of pizza into twocontinuous sectors in such way that the difference between angles of these sectors is minimal. Sector angle is sum of angles of all pieces in it. Pay attention, that one of sectors can be empty.

Input

The first line contains one integer n (1 ≤ n ≤ 360)  — the number of pieces into which the delivered pizza was cut.

The second line contains n integers ai (1 ≤ ai ≤ 360)  — the angles of the sectors into which the pizza was cut. The sum of all ai is 360.

Output

Print one integer  — the minimal difference between angles of sectors that will go to Vasya and Petya.

Examples
Input
4
90 90 90 90
Output
0
Input
3
100 100 160
Output
40
Input
1
360
Output
360
Input
4
170 30 150 10
Output
0

原创粉丝点击