結果

問題 No.362 門松ナンバー
ユーザー vjudge1
提出日時 2024-08-21 23:36:08
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 3,000 ms
コード長 1,850 bytes
コンパイル時間 2,103 ms
コンパイル使用メモリ 195,068 KB
最終ジャッジ日時 2025-02-23 23:16:52
ジャッジサーバーID
(参考情報)
judge2 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include<bits/stdc++.h>
#define Add(x,y) (x+y>=mod)?(x+y-mod):(x+y)
#define lowbit(x) x&(-x)
#define pi pair<ll,ll>
#define pii pair<ll,pair<ll,ll>>
#define iip pair<pair<ll,ll>,ll>
#define ppii pair<pair<ll,ll>,pair<ll,ll>>
#define fi first
#define se second
#define full(l,r,x) for(auto it=l;it!=r;it++) (*it)=x
#define Full(a) memset(a,0,sizeof(a))
#define open(s1,s2) freopen(s1,"r",stdin),freopen(s2,"w",stdout);
#define For(i,l,r) for(int i=l;i<=r;i++)
#define _For(i,l,r) for(int i=r;i>=l;i--)
using namespace std;
typedef double db;
typedef unsigned long long ull;
typedef long long ll;
bool Begin;
const ll M=20;
inline ll read(){
ll x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-')
f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
return x*f;
}
inline void write(ll x){
if(x<0){
putchar('-');
x=-x;
}
if(x>9)
write(x/10);
putchar(x%10+'0');
}
ll T,n,x,s,cnt;
ll dp[M][M][M],ans[M];
bool check(ll a,ll b,ll c){
return ((a<b&&b>c&&a!=c)||(a>b&&b<c&&a!=c));
}
void init(){
For(i,0,9)
For(j,0,9)
if(i!=j)
dp[2][i][j]=1;
For(l,3,14)
For(i,0,9)
For(j,0,9)
For(k,0,9)
if(check(i,j,k))
dp[l][i][j]+=dp[l-1][j][k];
}
void solve(){
s=cnt=0;
x=read();
For(l,3,14){
For(j,1,9){
For(k,0,9){
if(s+dp[l][j][k]>=x){
ans[l-1]=j,ans[l-2]=k;
cnt=l;
l=j=k=15;
}
else
s+=dp[l][j][k];
}
}
}
_For(l,2,cnt-1){
ll j=ans[l],k=ans[l-1];
For(i,0,9){
if(check(j,k,i)){
if(s+dp[l][k][i]>=x){
ans[l-2]=i;
break;
}
else
s+=dp[l][k][i];
}
}
}
_For(i,0,cnt-1)
write(ans[i]);
putchar('\n');
}
bool End;
int main(){
init();
T=read();
while(T--)
solve();
//cerr<<'\n'<<abs(&Begin-&End)/1048576<<"MB";
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0