803C Maximal GCD

来源:互联网 发布:python 查数据类型 编辑:程序博客网 时间:2024/06/03 17:00
#include<iostream>#include<vector>#include<string>#include<set>#include<map>#include<algorithm>#include<queue>#include<list>#include<stack>#include<cstdio>#include<fstream>#include<numeric>#include<functional>#include<utility>#include<memory>using namespace std;using namespace placeholders;typedef long long ll;int main(){ll n, k;while (cin >> n >> k){if ((1 + k)*k / 2 > n || k>1000000){cout << "-1" << endl;continue;}vector<ll> factor;for (ll i = 1; i <= sqrt(n); i++){if (n%i == 0){factor.push_back(i);factor.push_back(n / i);}}sort(factor.begin(), factor.end());bool flag = false;vector<ll> result;for (ll i = 0; i < factor.size(); i++){ll sum = k*(k - 1) *factor[i] / 2;ll remain = n - sum;if (remain >(k - 1)*factor[i] && remain%factor[i] == 0){flag = true;result.clear();for (ll j = 1; j < k; j++) result.push_back(j*factor[i]);result.push_back(remain);}else if (remain<(k - 1)*factor[i]){break;}}if (flag){for (int i = 0; i < result.size(); i++) cout << result[i] << " ";cout << endl;}else{cout << "-1" << endl;}}return 0;}

0 0
原创粉丝点击