Java Beans ZOJ 3714

来源:互联网 发布:中创软件怎么样 编辑:程序博客网 时间:2024/05/06 13:54
Java Beans

Time Limit: 2 Seconds     Memory Limit: 65536 KB

There are N little kids sitting in a circle, each of them are carrying some java beans in their hand. Their teacher want to selectM kids who seated in M consecutive seats and collect java beans from them.

The teacher knows the number of java beans each kids has, now she wants to know the maximum number of java beans she can get fromM consecutively seated kids. Can you help her?

Input

There are multiple test cases. The first line of input is an integerT indicating the number of test cases.

For each test case, the first line contains two integersN (1 ≤ N ≤ 200) and M (1 ≤ MN). HereN and M are defined in above description.The second line of each test case containsN integers Ci (1 ≤ Ci ≤ 1000) indicating number of java beans theith kid have.

Output

For each test case, output the corresponding maximum java beans the teacher can collect.

Sample Input

25 27 3 1 3 96 613 28 12 10 20 75

Sample Output

16158

题解:题意为N个小朋友围成一圈,每个小朋友手里都有一些豆子,老师想抢连续的M个小朋友的豆子,问老师最多能抢多少?

一开始没看清是连续的小朋友,直接排序,错了一发……


#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#include<stdlib.h>#include<time.h>#include<string>#include<math.h>#include<map>#include<queue>#include<stack>#define INF 0x3f3f3f3f#define ll long long#define For(i,a,b) for(int i=a;i<b;i++)#define mem(a,b) memset(a,b,sizeof(a))using namespace std;int n,m;int x[405];int main(){    int t;    scanf("%d",&t);    while(t--)    {        mem(x,0);        scanf("%d%d",&n,&m);        for(int i=0;i<n;i++)        scanf("%d",&x[i]);        int s=0,ans=0;        for(int i=0;i<=n;i++)        {            for(int j=i;j<i+m;j++)            {                s+=x[j%n];            }            if(s>=ans)                ans=s;            s=0;        }        printf("%d\n",ans);    }}







0 0
原创粉丝点击