제출 #1149973

#제출 시각아이디문제언어결과실행 시간메모리
1149973PagodePaivaPacking Biscuits (IOI20_biscuits)C++20
0 / 100
1 ms328 KiB
#include "biscuits.h" #include<bits/stdc++.h> using namespace std; const int N = 70; long long dp[N][2][2]; long long count_tastiness(long long x, std::vector<long long> a) { for(int i = 0;i < a.size();i++){ if(a[i] > 2){ int d = (a[i]-1)/2; if(i == a.size()-1) a.push_back(0); a[i+1] += d; a[i] -= 2*d; } } a.push_back(0); a.push_back(0); dp[0][0][0] = 1; dp[0][0][1] = (a[0] == 2); dp[0][1][0] = (a[0] >= 1); dp[0][1][1] = 0; for(int i = 1;i <= a.size();i++){ dp[i][0][0] = dp[i-1][0][0] + dp[i-1][1][0]; dp[i][1][0] = (a[i] == 0 ? dp[i-1][0][1] + dp[i-1][1][1] : dp[i-1][0][0] + dp[i-1][1][0]); dp[i][0][1] = (a[i] == 0 ? 0 : (a[i] == 1 ? dp[i-1][0][1] + dp[i-1][1][1] : dp[i-1][0][0] + dp[i-1][1][0])); dp[i][1][1] = (a[i] == 2 ? dp[i-1][0][1] + dp[i-1][1][1] : 0); //cout << dp[i][0][0] << ' ' << dp[i][0][1] << ' ' << dp[i][1][0] << ' ' << dp[i][1][1] << endl; } return dp[a.size()][0][0] + dp[a.size()][1][0]; }
#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...