PKU 1032 Parliament
グループは2つとは限らないのか。動的計画法。桁あふれするので、小さなNに対しての答えから法則を探した。
#include <iostream> #include <vector> using namespace std; int main() { int N; cin >> N; vector<int> v; int s = 0; for ( int i=2; s+i<=N; i++ ) v.push_back( i ), s += i; int n = (int)v.size(); for ( int i=0; i<N-s; i++ ) v[n-1-i%n]++; for ( int i=0; i<n; i++ ) cout << (i>0?" ":"") << v[i]; cout << endl; }