Submission #1206155

#TimeUsernameProblemLanguageResultExecution timeMemory
1206155asli_bgFibonacci representations (CEOI18_fib)C++20
5 / 100
27 ms10824 KiB
#include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; #define int long long typedef pair<int,int> pii; typedef vector<int> vi; typedef vector<pii> vii; typedef vector<bool> vb; typedef long long ll; typedef pair<ll,ll> pll; typedef vector<pll> vll; typedef tree<pii,null_type,less<pii>,rb_tree_tag, tree_order_statistics_node_update> oset; #define fi first #define se second #define pb push_back #define pf push_front #define mid (l+r)/2 #define all(x) x.begin(),x.end() #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define cont(x) for(auto el:x) cout<<el<<' ';cout<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define sp <<" "<< #define DEBUG(x) cout<<(#x) sp x<<endl #define carp(a,b) (((a%MOD)*(b%MOD))%MOD) #define topla(a,b) (((a%MOD)+(b%MOD))%MOD) const ll INF=1e18; const int MAXN=92;//1e5+5; const int MAXNN=2e5+5; const int MOD=1e9+7; vi fib; void calc(){ fib.pb(0); fib.pb(1); fib.pb(2); FORE(i,3,MAXN){ fib.pb(fib[i-1]+fib[i-2]); } } int dp[MAXNN][MAXN]; int solve(int sum,int lim){ if(sum<0 or lim<0) return 0; if(sum==0) return 1; if(lim==0) return 0; if(dp[sum][lim]!=0) return dp[sum][lim]; FORE(i,1,lim+1){ int deg=solve(sum-fib[i],i-1); dp[sum][lim]=topla(dp[sum][lim],deg); } return dp[sum][lim]; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); calc(); int n; cin>>n; vi a(n+1); FORE(i,1,n+1) cin>>a[i]; int cur=0; FORE(i,1,n+1){ cur+=fib[a[i]]; auto it=upper_bound(all(fib),cur); it--; int ind=it-fib.begin(); cout<<solve(cur,ind)<<endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...