結果
問題 | No.294 SuperFizzBuzz |
ユーザー |
![]() |
提出日時 | 2015-11-05 11:53:13 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 405 ms / 5,000 ms |
コード長 | 1,263 bytes |
コンパイル時間 | 1,715 ms |
コンパイル使用メモリ | 159,188 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-13 12:36:06 |
合計ジャッジ時間 | 4,616 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 12 |
ソースコード
#include <bits/stdc++.h>#include <cmath>#include <climits>#include <cstdio>using namespace std;#define endl '\n'#define ALL(a) (a).begin(),(a).end()#define SZ(a) int((a).size())#define FOR(i,a,b) for(int i=(a);i<(b);++i)#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)#define REP(i,n) FOR(i,0,n)#define RREP(i,n) for (int i=(n)-1;i>=0;i--)#define DEBUG(x) cout<<#x<<": "<<x<<endltypedef pair<int,int> P;typedef long long int LL;typedef pair<LL,LL> LP;long long C(int n, int r){long long res = 1;REP(i,r){res *= (n-i);res /= (i+1);}return res;}int bitcount(LL x){int res = 0;while(x != 0){if(x&1){res++;}x = x>>1;}return res;}LL ketan[26];int main(){//ios::sync_with_stdio(false);//cin.tie(0);FOR(i,2,26){int x = 2;LL m = ketan[i-1];while(x <= i){m += C(i,x);x += 3;}ketan[i] = m;}int N;cin >> N;int keta = 0;REP(i,26){if(N <= ketan[i] && !keta) keta = i;}//DEBUG(keta);int n = ketan[keta-1];string ans;REP(i,1<<keta){int bc = bitcount(i);if(bc%3 == 2){n++;if(n == N){REP(j,keta){if(i>>j & 1){ans += "5";}else{ans += "3";}}}}}RREP(i,SZ(ans)) cout << ans[i];cout << 5 << endl;}