ドゥームP1338の伝説
長い時間、見つかっただけで完全な配列の逆の順序を読んで......と、このタイトルは重要ではありません。
それはしないだろう
一般的な考え方:
Nまでの長さが(N-1)* N / 2反転ペアに配置されています。
確かにあまり前面に要素の逆の順序で小さく(貪欲)!
とき、M <=(N-2)*(N-1)のタイトル/ 2は、正面上の最小要素とすることができます。
もしM>(N-2)*(N-1)/ 2、最小の要素を戻すことが必要であるように。
#include <ビット/ STDC ++ H>
使用して 名前空間STDを、
長い 長 N、M、[ 50005 ]、T、F、P。
INT メイン()
{
scanf関数(" %d個の%のD "、&N、&M)。
T = N、F = 1 。
以下のために(int型 i = 1 ; iが<= N; iは++ )
{
P =(NI)*(N- 1 -i)/ 2 。
もし(P> = M)++ F] = I。
他
{
[T - ] = I。
メートル= M-(T-F + 1 )。
}
}
のための(int型 i = 1 ; iが<= N; iが++ )
のprintf(" %dの" 、[I])。
リターン 0 ;
}