mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 3561.cpp
Goddamn SDUT OJ!!! Why not notify OIers use %lld instead of %I64d for long long ????!!!! GOD DAMNNNNNNN IT!
This commit is contained in:
parent
59760891fb
commit
5726fbeb71
68
SDUTOJ/3561.cpp
Normal file
68
SDUTOJ/3561.cpp
Normal file
|
@ -0,0 +1,68 @@
|
|||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
using namespace std;
|
||||
typedef long long LL;
|
||||
|
||||
LL a[50];
|
||||
LL b[50];
|
||||
|
||||
/// Print Table
|
||||
void init()
|
||||
{
|
||||
a[0]=1;
|
||||
a[1]=2;
|
||||
for(int i=2;i<48;i++)
|
||||
{
|
||||
a[i]=a[i-1]+a[i-2];
|
||||
}
|
||||
}
|
||||
|
||||
int _ans;
|
||||
int dfs(LL cVal,int cidx,int bidx)
|
||||
{
|
||||
if(cVal==0)
|
||||
{
|
||||
_ans=bidx;return 1;
|
||||
}
|
||||
if(cidx==-1) return 0;
|
||||
for(int i=cidx;i>=0;i--)
|
||||
{
|
||||
if(cVal>=a[i])
|
||||
{
|
||||
b[bidx]=a[i];
|
||||
int ret=dfs(cVal-a[i],i-1,bidx+1);
|
||||
if(ret) return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
init();
|
||||
int n;
|
||||
scanf("%d",&n);
|
||||
LL t;
|
||||
for(int cc=0;cc<n;cc++)
|
||||
{
|
||||
scanf("%lld",&t);
|
||||
|
||||
int ret=dfs(t,47,0);
|
||||
if(ret)
|
||||
{
|
||||
printf("%lld=",t);
|
||||
for(int i=_ans-1;i>0;i--)
|
||||
{
|
||||
printf("%lld+",b[i]);
|
||||
}
|
||||
printf("%lld\n",b[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("-1\n");
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user