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 ; }