結果
問題 | No.2929 Miracle Branch |
ユーザー | rotti_coder |
提出日時 | 2024-10-12 16:43:43 |
言語 | C++17 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,633 bytes |
コンパイル時間 | 732 ms |
コンパイル使用メモリ | 77,624 KB |
実行使用メモリ | 13,632 KB |
最終ジャッジ日時 | 2024-10-12 16:43:51 |
合計ジャッジ時間 | 6,969 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
13,632 KB |
testcase_01 | WA | - |
testcase_02 | AC | 2 ms
6,816 KB |
testcase_03 | WA | - |
testcase_04 | WA | - |
testcase_05 | WA | - |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | WA | - |
testcase_10 | WA | - |
testcase_11 | WA | - |
testcase_12 | WA | - |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | WA | - |
testcase_17 | WA | - |
testcase_18 | WA | - |
testcase_19 | WA | - |
testcase_20 | WA | - |
testcase_21 | WA | - |
testcase_22 | WA | - |
testcase_23 | WA | - |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | TLE | - |
testcase_29 | -- | - |
testcase_30 | -- | - |
testcase_31 | -- | - |
testcase_32 | -- | - |
testcase_33 | -- | - |
testcase_34 | -- | - |
testcase_35 | -- | - |
testcase_36 | -- | - |
testcase_37 | -- | - |
testcase_38 | -- | - |
testcase_39 | -- | - |
testcase_40 | -- | - |
testcase_41 | -- | - |
testcase_42 | -- | - |
testcase_43 | -- | - |
testcase_44 | -- | - |
testcase_45 | -- | - |
ソースコード
#include<iostream> #include<vector> using namespace std; vector<pair<long long, long long> > prime_factorize(long long N) { vector<pair<long long, long long> > res; for (long long a = 2; a * a <= N; ++a) { if (N % a != 0) continue; long long ex = 0; // 指数 // 割れる限り割り続ける while (N % a == 0) { ++ex; N /= a; } // その結果を push res.push_back({a, ex}); } // 最後に残った数について if (N != 1) res.push_back({N, 1}); return res; } int main() { long long X; cin >> X; if(X==1){ cout << 2 << endl; cout << "1 2" << endl; cout << "b g" << endl; return 0; } vector<pair<long long,long long>>num=prime_factorize(X); int cnt=0; for(int i=0;i<num.size();i++){ cnt+=(num[i].first+1)*num[i].second; if(cnt>2e5)break; } if(cnt>2e5){ cout << -1 << endl; return 0; } cout << cnt << endl; int rotti=cnt; //まず茶をつなぐ cnt=2; bool nouka=true; for(int i=0;i<num.size();i++)for(int j=0;j<num[i].second;j++){ if(nouka){ nouka=false; continue; } cout << cnt-1 << " " << cnt << endl; cnt++; } //つぎに緑を付けていく int count=1; for(int i=0;i<num.size();i++){ for(int j=0;j<num[i].second;j++){ for(int k=0;k<num[i].first;k++){ cout << count << " " << cnt << endl; cnt++; } count++; } } //色の配置を出力 cout << "b"; for(int i=1;i<count-1;i++)cout << " " << "b"; for(int i=0;i<rotti-count;i++)cout << " " << "g"; cout << endl; }