1032 Parliament
Posted sweet-ginger-candy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1032 Parliament相关的知识,希望对你有一定的参考价值。
描述
愚人土地议会的新集会由N名代表组成。 根据现行规定,代表们应分为不同规模的不相交群体,每天每个小组必须派一名代表参加和解委员会。 和解委员会的组成应该每天都不同。 议会只有在完成这项工作的情况下才能运作。
您将编写一个程序,确定每个组应包含多少代表,以便议会尽可能长时间地工作。
输入
输入文件包含单个整数N(5 <= N <= 1000)。
输出
将输出文件写入允许议会在最长可能时间内工作的组的大小。 这些尺寸应按升序打印在一行上,并应以空格分隔。
样例输入
7
样例输出
3 4
////////////////////////////////////////////////////////////////////////// // POJ1032 Parliament // Memory: 280K Time: 0MS // Language: C++ Result: Accepted ////////////////////////////////////////////////////////////////////////// #include <iostream> using namespace std; int main() { int N; cin >> N; int cnt; int sum = 0; for (cnt = 0; sum + 2 + cnt<= N; ++cnt) { sum += (2 + cnt); } int left = N - sum; int p = 1 + cnt; while (left > 0) { --p; --left; } if (p == 0) { for (int i =3; i < 2 + cnt; ++i) { cout << i << " "; } cout << 3 + cnt << endl; } else if (p == 1) { for (int i =3; i < 2 + cnt; ++i) { cout << i << " "; } cout << 2 + cnt << endl; } else if (p == cnt + 1) { for (int i =2; i < 1 + cnt; ++i) { cout << i << " "; } cout << 1 + cnt << endl; } else { for (int i =2; i <= p; ++i) { cout << i << " "; } for (int i = p + 2; i < cnt + 2; ++i) { cout << i << " "; } cout << 2 + cnt << endl; } system("pause"); return 0; }
来源:https://www.cnblogs.com/dengeven/p/3229143.html
以上是关于1032 Parliament的主要内容,如果未能解决你的问题,请参考以下文章
译《The Part-Time Parliament》——终于读懂了Paxos协议!