diff --git a/src/11/18/P1545.cpp b/src/11/18/P1545.cpp index 0c4244a..1224f89 100644 --- a/src/11/18/P1545.cpp +++ b/src/11/18/P1545.cpp @@ -5,7 +5,7 @@ #include #include using ll = int64_t; -// #define printf +#define printf const ll inf=1e9+7; ll n,l,a,b; std::vector v,dp,diff; @@ -23,9 +23,10 @@ int main(){ diff[e]++; } dp[0]=0; - for(ll i=1;i<=l;i++){ + for(int i=2;i<=l;i+=2){ + v[i-1]+=v[i-2]; v[i]+=v[i-1]; - for(ll j=a;j<=b&&i-j*2>=0;j++){ + for(int j=a;j<=b&&i-j*2>=0;j++){ if(!v[i-j*2] || diff[i-j*2]==v[i-j*2-1]){ dp[i]=std::min(dp[i],dp[i-j*2]+1); } @@ -35,5 +36,5 @@ int main(){ printf("diff[%lld]=%lld\n",i,diff[i]); printf("\n"); } - std::cout<=inf?-1:dp[l])<<"\n"; } \ No newline at end of file