結果
問題 | No.294 SuperFizzBuzz |
ユーザー |
![]() |
提出日時 | 2016-03-30 02:41:42 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,593 bytes |
コンパイル時間 | 451 ms |
コンパイル使用メモリ | 61,736 KB |
最終ジャッジ日時 | 2024-11-14 19:36:05 |
合計ジャッジ時間 | 860 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:68:19: error: ‘pow’ was not declared in this scope 68 | for(int i=1;i<pow(2,digit);i+=2){ | ^~~
ソースコード
#include <iostream>#include <string>#include <vector>#include <algorithm>#include <set>#include <map>#include <queue>#include <climits>#include <cassert>using namespace std;#define REP(i,n) for(int i=0;i<n;i++)#define INF INT_MAX/3#define MP make_pair#define PB push_back#define ALL(v) (v).begin(),(v).end()typedef long long ll;typedef pair<int,int> pii;typedef vector<int> vi;typedef vector<vi> vvi;ll C[30][30];ll dig[30];void comb(){REP(i,30) C[i][i] = 1;REP(i,30) C[i][0] = 1;for(int i=1;i<30;i++){for(int j=1;j<i;j++){C[i][j] = C[i-1][j-1] + C[i-1][j];}}}int one(int n){int cnt=0;while(n>0){if(n%2) cnt++;n >>= 1;}return cnt;}int main(){ll N;cin >> N;comb();for(int i=3;i<30;i++){for(int j=2;j<i;j+=3){dig[i] += C[i-1][j];}}int digit = 0;ll sum = 0;for(int i=3;i<30;i++){sum += dig[i];digit = i;if(sum>=N) break;}N = N - (sum - dig[digit]);int cnt = 0;for(int i=1;i<pow(2,digit);i+=2){assert(i%2==1);int o = one(i);if(o%3!=0) continue;cnt++;if(cnt==N){int n = i;string ans = "";while(n>0){if(n%2==0) ans+="3";else ans += "5";n>>=1;}string l = string(digit-ans.length(),'3');reverse(ALL(ans));cout << l << ans << endl;return 0;}}}