CF895A题解

题目传送门

本题还是比较简单的,所以直接讲思路。

分析

由于保证了各部分的和,所以要想让差尽可能小,必须让两部分尽可能的接近 180,可以想到用三重循环来枚举。我们可以随时记录两大块之差,依次比较即可。

Code

#include<bits/stdc++.h>
using namespace std;
int a[400];
int n,ans=400,s;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    if(n==1)//特判
    {
        cout<<360;
        return 0;
    }
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++)//前两重循环枚举一个人分到的披萨
        {
            s=0;
            for(int k=i;k<=j;k++)
                s+=a[k],ans=min(ans,abs(s-180));//比较
        }
    cout<<ans*2;//由于只算了一个人,所以最后要乘上2
}
posted @   cycwss  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示