結果
| 問題 |
No.689 E869120 and Constructing Array 3
|
| ユーザー |
merom686
|
| 提出日時 | 2018-05-18 23:03:24 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 1,000 ms |
| コード長 | 1,131 bytes |
| コンパイル時間 | 598 ms |
| コンパイル使用メモリ | 74,188 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-28 13:58:00 |
| 合計ジャッジ時間 | 1,806 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 13 |
ソースコード
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int k;
cin >> k;
if (k == 0) {
cout << 1 << endl;
cout << 1 << endl;
return 0;
}
int p[5] = {}, q[5] = { 1, 5, 8, 13, 34 };
for (;;) {
int t = p[0] * (p[0] + 1) / 2;
if (t > k) break;
p[0]++;
}
k -= p[0] * (p[0] - 1) / 2;
for (;;) {
int t = (p[1] + 1) * (p[1] + 1);
if (t > k) break;
p[1]++;
}
p[2] = p[1];
k -= p[1] * p[2];
p[3] = 1;
for (;;) {
int t = p[3] * (p[4] + 1);
if (t > k) break;
p[4]++;
}
k -= p[3] * p[4];
if (k != 0) throw;
int n = 0;
for (int i = 0; i < 5; i++) {
n += p[i];
}
cout << n << endl;
int h = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < p[i]; j++) {
cout << q[i] << " \n"[h == n - 1];
h++;
}
}
return 0;
}
merom686