0
点赞
收藏
分享

微信扫一扫

LOJ #2405. 「THUPC 2017」玩游戏 / Game


题目链接:​​传送门​​

事实证明做题不要被THUPC吓到
等差数列求和,先判断是不是
然后从大到小找数把减成就行

#include <bits/stdc++.h>
#define

using namespace std;
typedef long long ll;
ll a, b; bool ok = 0; int p, cnt, ans[A];

int main(int argc, char const *argv[]) {
cin >> a >> b; ll lim = (a + b) * 2;
for (ll i = 1; i <= sqrt(lim); i++)
if (i * (i + 1) == lim) {p = i; ok = 1; break;}
if (!ok) return puts("No"), 0;
cout << p << " ";
for (int i = p; i >= 1; i--) {
if (!a) break;
if (a >= i) a -= i, ans[++cnt] = i;
}
for (int i = cnt; i >= 1; i--) i == 1 ? cout << ans[i] << endl : cout << ans[i] << " ";
return 0;
}


举报

相关推荐

0 条评论