Submission #1042622

#TimeUsernameProblemLanguageResultExecution timeMemory
1042622AmirAli_H1Packing Biscuits (IOI20_biscuits)C++17
0 / 100
1 ms348 KiB
// In the name of Allah #include <bits/stdc++.h> #include "biscuits.h" using namespace std; typedef long long int ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef complex<ld> cld; #define all(x) (x).begin(),(x).end() #define len(x) ((ll) (x).size()) #define F first #define S second #define pb push_back #define sep ' ' #define endl '\n' #define Mp make_pair #define kill(x) cout << x << '\n', exit(0) #define set_dec(x) cout << fixed << setprecision(x); #define file_io(x,y) freopen(x, "r", stdin); freopen(y, "w", stdout); mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int maxn = 60 + 4; int n; ll R; ll A[maxn]; vector<ll> ls; ll dp[maxn]; vector<ll> res, resx; ll cal(int i, ll x) { if (x == 0) return 0; else if (x == 1) return 1; else if (x >= (1ll << (i + 1))) return dp[i]; int j = __lg(x); return dp[j - 1] + cal(j - 1, min(x - (1ll << j), ls[j])); } ll count_tastiness(ll x, vector<ll> Ax) { n = len(Ax); R = x; for (int i = 0; i < n; i++) A[i] = Ax[i]; ll sm = 0; ls.clear(); for (int i = 0; i < n; i++) { sm += (A[i] << i); ll valx = (sm / x); ls.pb(max(0ll, valx - (1ll << i) + 1)); } res.clear(); res.pb(0); for (int i = 0; i < n; i++) { resx.clear(); for (ll x : res) { if (x < ls[i]) resx.pb(x + (1ll << i)); } for (ll x : resx) res.pb(x); } return len(res); }
#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...