poj解题报告——1701

来源:互联网 发布:python 2.7 sip 编辑:程序博客网 时间:2024/05/21 16:15

         分析:则任意求任意两层不满衣服只差的最小值即为所要求的楼层。

        dD(i+1,i)=Di+1-Di;

        花间得dD=(b+i)*sumk[i] - (a-i-1)*(sumk[M]-sumk[i])-c;

#include<stdio.h>#include<iostream>using namespace std;int T,M,a,b,ans;int k[10010],sumk[10010];__int64 dD,c;int main(){int i;scanf("%d",&T);while(T--){scanf("%d %d %d",&M,&a,&b);scanf("%d",&k[1]);c=sumk[1]=k[1];for(i=2;i<=M;i++){scanf("%d",&k[i]);sumk[i]=sumk[i-1]+k[i];c+=k[i]*i;}ans=1;for(i=1;i<M;i++){dD=(b+i)*sumk[i]-(a-i-1)*(sumk[M]-sumk[i])-c;if(dD<0)ans=i+1;elsebreak;}printf("%d\n",ans);}return 0;}


0 0