cf B. Valera and Contest

http://codeforces.com/contest/369/problem/B

先对k个处理,先处理sk%k个为sk/k+1,如果sk/k==0,k个数都为sk/k;对与剩下的数也按照同样的方法处理,处理完之后就是所要求的序列。

 1 #include <cstdio>

 2 #include <cstring>

 3 #include <algorithm>

 4 #define maxn 10000

 5 using namespace std;

 6 

 7 int n,k,l,r,s1,s2;

 8 int a[maxn];

 9 

10 int main()

11 {

12     while(scanf("%d%d%d%d%d%d",&n,&k,&l,&r,&s1,&s2)!=EOF)

13     {

14         int cnt=0;

15         int i;

16         for(i=1; i<=s2%k; i++)

17         {

18             a[cnt++]=s2/k+1;

19         }

20         for(; i<=k; i++)

21         {

22             a[cnt++]=s2/k;

23         }

24         if(n!=k)

25         {

26             int m=n-k;

27             int s3=s1-s2;

28             for(i=1; i<=s3%m; i++)

29             {

30                 a[cnt++]=s3/m+1;

31             }

32             for(; i<=m; i++)

33             {

34                 a[cnt++]=s3/m;

35             }

36         }

37         for(int i=0; i<n; i++)

38         {

39             printf("%d ",a[i]);

40         }

41         printf("\n");

42     }

43     return 0;

44 }
View Code

 

你可能感兴趣的:(test)