J - 노동자

AVIN 오늘 다양한 고객을 만족합니다. 그는 어려운 문제를 해결할 수 있다면 그는 1 백만 달러가 적립됩니다. n 개의 창고 및 m 노동자가있다. i 번째 창고의 모든 노동자는 하루에 인공 지능의 주문을 처리 할 수 ​​있습니다. 하나의 작업자 할당 방법은 모든 창고 매일 주문 같은 수를 처리하는 만족이 존재하는지 여부를 고객이 궁금해. 각 노동자는 정확히 하나의 창고에 할당하고 작업시에는 근로자가 게으른 없습니다해야합니다.

입력

첫 번째 라인은 두 정수 N (1 ≤ N ≤ 1, 000), m (1,018 ≤ m ≤ 1)을 포함한다. 두 번째 행은 N 개의 정수를 포함한다. i 번째 정수 (1 ≤은 ≤ 10 AI) 하루에 인공 지능의 주문을 처리 할 수있는 i 번째 창고에서 하나의 작업자를 나타냅니다 인공 지능.

 

산출

실현 가능한 할당 방법이 있다면, 첫 번째 줄에 "예"를 인쇄 할 수 있습니다. 이어서, i 번째의 창고에 할당 직원의 수를 나타내는 정수, i 번째와 두 번째 행, n은 정수 인쇄한다.
그렇지 않으면, 인쇄 한 줄에 "아니오". 여러 솔루션이있는 경우, 모든 솔루션이 허용됩니다.

 

샘플 입력

2 6 
1 2 
2 5 
1 2 
예제 출력


4 2 
없음 

질문의 의미 : N 창고, m 노동자, 학교 단일 속도, Q가 각 창고 : 각 창고 같은 양의 하루 각 근로자에 대한 합리적인 배분을 보낼 수 있도록. 출력 할당 방법의 경우

솔루션 : N (P)의 최소 공배수는 m의 % n 개의 == 0이면 합리적인 배분하는 경우, 하나의 속도를 전송하도록 결정

사용법 #include <iostream> 
사용법 #include <알고리즘> 
사용법 #include < 문자열 .H> 
사용법 #include < 문자열 >
 #DEFINE는 오래 오래 것이다
 사용하는  네임 스페이스 표준을; 
LL의 N, m; 
LL P는 [ 1,005 ]; 
LL의 GCD (LL의 B, A LL) // 最大公约数
{
     복귀 ㄴ == 0 ? A : GCD (B, A의 % B); 
} 

LL의 LCM은 (LL의 B, A LL) // 最小公倍数
{
     복귀 A / GCD (a, b) * B 단계; 
} 
INT 의 main () 
{ 
    동안 (CIN >> N >>m) 
    { 
        대해 (LL I = 1 ; i가 N = <; 내가 ++ ) 
            CIN >> P는 [I]; 
        LL 온도 = P [ 1 ];
        대해 (LL I = 2 ; 나는 <= N; 내가 ++ ) 
        { 
            온도 = LCM (온도, P [I]); 
        } 

        LL에서 CNT = 0 , 플래그 = 0 , D;
        대해 (LL I = 1 ; i가 <= N; ++ i가 ) 
            CNT = CNT + 온도 / P를 [I];
        경우 (m을 %의 CNT! = 0 )
            플래그 = 1 ;
        다른 
            D = m / CNT;
        경우 (플래그 == 0 ) 
        { 
            COUT << " " << ENDL;
            대해 (LL I = 1 ; 나는 <= N; 내가 ++ ) 
            { 
                경우 (! I = N) 
                    COUT << 온도 / P는 [I] * D << '  ' ;
                다른 
                    COUT << 온도 / P는 [I] * D << ENDL; 
            }
        } 
        다른
            COUT << " 아니오 " << ENDL; 
    } 
    반환  0 ; 
}

 




추천

출처www.cnblogs.com/-citywall123/p/11234481.html