zoukankan      html  css  js  c++  java
  • #448 div2 a Pizza Separation

    A. Pizza Separation 
    time limit per test1 second 
    memory limit per test256 megabytes 
    inputstandard input 
    outputstandard 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 into n pieces. The i-th piece is a sector of angle equal to ai. Vasya and Petya want to divide all pieces of pizza into two continuous 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 

    90 90 90 90 
    output 

    input 

    100 100 160 
    output 
    40 
    input 

    360 
    output 
    360 
    input 

    170 30 150 10 
    output 

    Note 
    In first sample Vasya can take 1 and 2 pieces, Petya can take 3 and 4 pieces. Then the answer is |(90 + 90) - (90 + 90)| = 0.

    In third sample there is only one piece of pizza that can be taken by only one from Vasya and Petya. So the answer is |360 - 0| = 360.

    In fourth sample Vasya can take 1 and 4 pieces, then Petya will take 2 and 3 pieces. So the answer is |(170 + 10) - (30 + 150)| = 0.

    Picture explaning fourth sample:

    Both red and green sectors consist of two adjacent pieces of pizza. So Vasya can take green sector, then Petya will take red sector.

    题解:写的时候没注意到是取连续的区间,喵的老了。暴力枚举区间就可以了 复杂度360*360

    代码:

    #include <iostream>
    #include <math.h>
    using namespace std;
    
    int main(){
        int ans=361;
        int sector[361];//扇形数组
        int numberOfSector;//扇形个数
        cin>>numberOfSector;
        for(int i=0;i<numberOfSector;i++){
            cin>>sector[i];
        } 
        for(int i=0;i<numberOfSector;i++){
            int temp=0;//临时存放当前扇形度数和
            for(int j=0;j<numberOfSector;j++){
                temp+=sector[(i+j)%numberOfSector];//关键步骤 
                ans=min(ans,abs(180-temp));
            } 
        }
        cout<<ans*2<<endl;
    
        return 0;
    } 
  • 相关阅读:
    Spark SQL CLI 实现分析
    Sencha Touch+PhoneGap打造超级奶爸之喂养记(一) 源码免费提供(转)
    WCF 采用net.tcp协议实践(转)
    WPF如何用TreeView制作好友列表、播放列表(转)
    WPF 带CheckBox、图标的TreeView(转)
    重磅来袭,开源Asp.Net MVC网上商城BrnShop正式发布,提供源码下载(转)
    WPF中使用BitmapImage处理图片文件(转)
    动画Completed事件里获取执行该动画的UI对象
    WPF中Image显示本地图片(转)
    wpf的datepicker处理(转)
  • 原文地址:https://www.cnblogs.com/z1141000271/p/8098179.html
Copyright © 2011-2022 走看看