用户工具

站点工具


2020-2021:teams:no_morning_training:poj2566

这是本文档旧的修订版!


#include<cstdio>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
int n,k,a;
typedef pair<int,int> unit;
unit sum[100005];
int main()
{
    while(scanf("%d%d",&n,&k)&&n)
    {
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a);
            sum[i]=unit(sum[i-1].first+a,i);
        }
        sort(sum+1,sum+1+n);
        for(int i=1;i<=k;i++)
        {
            scanf("%d",&a);
            int t=INF,l,r;
            for(int left=1,right=1;right<=n;right++)
            {
                while(sum[right].first-sum[left].first>a)
                {
                    if(sum[right].first-sum[left].first-a<t)
                    {
                        t=sum[right].first-sum[left].first-a;
                        l=sum[left].second;
                        r=sum[right].second;
                    }
                    left++;
                }
                if(a-sum[right].first+sum[left].first<t)
                {
                    t=a-sum[right].first+sum[left].first;
                    l=sum[left].second;
                    r=sum[right].second;
                }
            }
            printf("%d %d %d\n",sum[r].first-sum[l].first,l,r);
        }
    }
    return 0;
}
2020-2021/teams/no_morning_training/poj2566.1590153475.txt.gz · 最后更改: 2020/05/22 21:17 由 shaco