| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
好简洁啊……比我的程序好多了,我最不擅长这种麻烦又易错的题。。。In Reply To:我的程序有什么错? Posted by:XieWenlei at 2004-07-18 20:57:49 > #include <cstdio>
> #include <cstring>
>
> using namespace std;
>
> int main()
> {
> int t,m,a,b,ans,k[10000];
> long long left[10000],right[10000],num,adder,best;
>
> scanf("%d",&t);
> while (t--)
> {
> scanf("%d%d%d",&m,&a,&b);
> for(int i=0;i<m;i++)
> scanf("%d",&k[i]);
> left[0]=0;num=k[0];adder=0;
> for (int i=1;i<m;i++)
> {
> left[i]=left[i-1]+num*a+adder;
> adder+=num;num+=k[i];
> }
> right[m-1]=0;num=k[m-1];adder=0;
> for (int i=m-2;i>=0;i--)
> {
> right[i]=right[i+1]+num*b+adder;
> adder+=num;num+=k[i];
> }
> best=1000000000;best=best*best;
> for (int i=0;i<m;i++)
> if (left[i]+right[i]<best)
> {
> best=left[i]+right[i];ans=i;
> }
> printf("%d\n",ans+1);
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator