配列を指定して、
要素を染色するための要件は、要素は、同じ色が異なっている必要があり満たし、そしてすべての色は、すべてアップに使用します
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 #define SC(X)のscanf( "%I64d"、&x)は、 #defineは長いlong int型 ベクター < INT > V [ 5005 ]。 int型の ANS [ 5005 ]; 署名されたメイン() { int型N、K、。 SC(N)。 SC(K); int型 MA = 0 ; 以下のために(int型 i = 0 ; iがn <I ++は{) 皮下(A)。 V [A] .push_back(I)。 もし(V [A] .size()> K){ プット(" NO" ); 戻り 0 ; } MA = MAX(MA、(INT )V [A] .size()); } int型、T = 0 ; のために(INT J = 1 ; J <= kであり、j ++ ) のための(INT I = 1 ; iが<= 5000 ; iは++ ){ 場合(V [I] .size()> 0 ){ ANS [V [i]が[ 0 ] = J; V [i]を.erase(V [I]。 ))(始める; T ++ ; } 場合(NT K- == {j)を 破ります。 } } プット(" YES " ); 以下のために(int型 i = 0 ; iがn <; iは++ ){ 場合(ANS [I] == 0 ){ COUT <<(K - )<< ' ' 。 } 他 COUT << ANS [I] << ' ' 。 } }