概要
列 p を、1 〜 n までの整数の順列とする。
p の "減少係数" を なる i の数とする。
n と k が与えられるので、現象係数が k となる p を一つ示せ。
解法
増加列を作って先頭の k + 1 項を reverse すると作れます。
コード
typedef vector<int> VI; #define FOR( v, c ) for ( auto &v : c ) int main() { cin.tie( 0 ); ios::sync_with_stdio( false ); int n, k; cin >> n >> k; VI nums( n ); REP( i, 0, n ) { nums[i] = i + 1; } reverse( nums.begin(), nums.begin() + k + 1 ); REP( i, 0, n ) { if ( i ) { cout << ' '; } cout << nums[i]; } cout << endl; return 0; }