zoukankan      html  css  js  c++  java
  • CF 369 B. Valera and Contest

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

    题意 :n, k, l, r, sall, sk,n代表的是n个人,这n个人的总分是sall,每个人的得分大于 l 小于 r ,其中k个人的分数构成了非递增序列,他们的分数总共为sk,让你求出每个人的分数输出即可,只要输出满足要求的一种即可。

    思路 :这个题我是比赛完了才做的,据说很多人当时做的时候就因为错在没有特判0上,还有我做的时候越界了,因为没有考虑到如果k=n的话,n-k=0,这样的话sall%n就不对了。就是先看这k个人的,让sk取余k,得到的余数从第一个人开始加1,直到余数没了为止,因为这k个是非递增序列,所以要从前开始加,这样的话剩下的n-k也这样做就行,反正都是符合题意的。

    #include <iostream>
    #include <stdio.h>
    using namespace std ;
    int main()
    {
        int n,k,l,r,sall,sk ;
        while(cin>>n>>k>>l>>r>>sall>>sk)
        {
            int i ;
            if(n == 0)
                continue ;
            if(k == n)
            {
                for(i = 1 ; i <= sk%k ; i++)
                    cout<<sk/k+1<<" " ;
                for( ; i <= k ; i++)
                    cout<<sk/k <<" ";
            }
            else
            {
                for(i = 1 ; i <= sk%k ; i++)
                    cout<<sk/k+1<<" " ;
                for( ; i <= k ; i++)
                    cout<<sk/k <<" ";
                n = n-k ;
                sall -= sk ;
                for(i = 1 ; i <= sall%n ; i++)
                    cout<<sall/n+1<<" ";
                for( ; i < n ; i++)
                    cout<<sall/n<<" " ;
                cout<<sall/n<<endl ;
            }
        }
        return 0 ;
    }
    View Code
  • 相关阅读:
    Kostya the Sculptor
    Parade
    zoj 1097 普吕弗序列
    API分析——Jquery UI Dialog
    伸缩性和可用性反模式(转)
    可伸缩性最佳实战(转)
    二叉索引树BIT
    RMQ
    线段树(区间树)
    双栈计算算术表达式
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3451625.html
Copyright © 2011-2022 走看看