에이:
문제의 의미 : 그들이 요소를 만들 수 있다면 원 N-A 감안할는 B 단항는, S 물었다.
아이디어 : A = S *의 I는 J 즉 A * I <= S <= + A * B + I는 즉, 분 (S / N, A) + B> = S 단계;
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/ * @author의 nimphy의 @create 2019-11-05-10 : 34 약 : CF1256A * / 수입 . java.util의 * ; 공용 클래스 CF1256 { 공공 정적 무효 메인 (문자열 []에 args) { 스캐너 = 새로운 스캐너 (System.in); INT Q, A, B, N, S; Q = In.nextInt (); 반면 (Q--> 0 ) { = In.nextInt (); B = In.nextInt (); N = In.nextInt (); 에스= In.nextInt (); INT I = Math.min (S / N, A) * N; // 에서 System.out.println (I); 경우 (I + B> = S)에서 System.out.println ( "YES"가 ); 다른 사람 에서 System.out.println ( "NO" ); } } }
비:
질문의 의미 : 순열을 감안할 때, 지금 당신은 그래서 최소 사전 편찬, 다른 작업을 할 수 있습니다.
아이디어 : 욕심, 그들은 교환 위치를 충족하는 경우 1, 2 .... 그런 다음, 상기 만들려고합니다 {사용하지 않는,하지만보다 작은 동안 왼쪽}
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
/ * @author의 nimphy의 @create 2019-11-05-11 : 34 약 : CF1256B * / 수입 . java.util의 * ; 공용 클래스 CF1256 { 정적 INT [] A = 새로운 INT [1010 ]; 정적 부울 [] = 힘 새로운 부울 [1010 ]; 공공 정적 무효 메인 (문자열 []에 args) { 스캐너 = 새로운 스캐너 (System.in); INT Q, N; Q = In.nextInt (); 반면 Q--> 0 ( ) { N = In.nextInt (); 위한 ( int로 , N = 1이 <; I = 1 난 ++ ) { A [I] = In.nextInt (); 힘 [I] = 거짓 ; } 에 대해 ( int로 , N = 1이 <; I = 1 난 ++ ) { INT의 POS = 0 ; 대 ( INT의 J = 1; J <= N; J ++ ) { 경우 (a [J] == I) { POS = J; 휴식 ; } } 상태 (!는 POS> 난 && 힘은 [POS]는 && A는 [POS]는 <A는 [POS는-1 ]) { int입니다 t는 = A [POS]을; A [POS]는 A [볼때 - 1 = ]; A [POS는 - 1] = t를; 힘 [POS는] = 참 ; POS - ; } } 에 대해 ( int로 , N = 1이 <; I = 1 난 ++ ) { System.out.print을 (a [I] + "" ); } 에서 System.out.println (); } } }