POJ 2363

题意:这是一个题意很拗口的一道题,就是给你k个数,m<n然后需要判断自n开始到k结束的每个数,如果含它及以前的m个数的平均值即为pm,前n个数平均值即为pn,如果pm>pn且上一个点不是pm>pn或者是第一个点,就输出BUY ON DAY ?,另一种情况也一样处理。

View Code
 1 #include<cstdio>

 2 #include<cstring>

 3 #include<algorithm>

 4 using namespace std;

 5 int main()

 6 {

 7     int k,n,m;

 8     double pn,pm,a[10005],sum[10005];

 9     while(scanf("%d%d%d",&m,&n,&k)!=EOF)

10     {

11         sum[0]=0;

12         int flag=-1;

13         for(int i=1;i<=k;i++)

14             scanf("%lf",&a[i]),sum[i]=sum[i-1]+a[i];

15         for(int i=n;i<=k;i++)

16         {

17             pn=(sum[i]-sum[i-n])/n;

18             pm=(sum[i]-sum[i-m])/m;

19             if(pm>pn&&flag!=1)

20             {

21                 flag=1;

22                 printf("BUY ON DAY %d\n",i);

23             }

24             else if(pm<pn&&flag!=0)

25             {

26                 flag=0;

27                 printf("SELL ON DAY %d\n",i);

28             }

29         }

30     }

31     return 0;

32 }

你可能感兴趣的:(poj)