(UPD: 2024-12-04 14:48 UTC) Judge is not working due to Cloudflare incident. (URL) We can do nothing about it, sorry. After the incident is resolved, we will grade all submissions.

Submission #1081488

#TimeUsernameProblemLanguageResultExecution timeMemory
1081488GrindMachinePacking Biscuits (IOI20_biscuits)C++17
0 / 100
1079 ms868 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; #define pb push_back #define endl '\n' #define conts continue #define ff first #define ss second #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #define sz(a) (int)a.size() #define rep(i,n) for(int i = 0; i < n; ++i) #define rep1(i,n) for(int i = 1; i <= n; ++i) #define rev(i,s,e) for(int i = s; i >= e; --i) #define trav(i,a) for(auto &i : a) template<typename T> void amin(T &x, T y){ x = min(x,y); } template<typename T> void amax(T &x, T y){ x = max(x,y); } template<typename A,typename B> string to_string(pair<A,B> p); string to_string(const string &s){ return "'"+s+"'"; } string to_string(const char* s){ return to_string((string)s); } string to_string(bool b){ return b?"true":"false"; } template<typename A> string to_string(A v){ string res = "{"; trav(x,v){ res += to_string(x)+","; } if(res.back() == ',') res.pop_back(); res += "}"; return res; } template<typename A,typename B> string to_string(pair<A,B> p){ return "("+to_string(p.ff)+","+to_string(p.ss)+")"; } #define debug(x) cout << "[" << #x << "]: "; cout << to_string(x) << endl const int MOD = 1e9 + 7; const int N = 1e5 + 5; const int inf1 = 1e9 + 5; const ll inf2 = (ll)1e18 + 5; #include "biscuits.h" long long count_tastiness(long long x, std::vector<long long> a) { ll n = sz(a); ll sum = 0; rep(i,n) sum += a[i]*(1ll<<i); ll ans = 1; vector<bool> vals; vals.pb(1); rep1(y,sum/x){ auto b = a; bool ok = true; rep1(iter,x){ ll v = y; rev(i,n-1,0){ ll f = 1ll<<i; ll sub = min(v/f,b[i]); b[i] -= sub; v -= sub*f; } if(v){ ok = false; break; } } ans += ok; vals.pb(ok); } ll siz = sz(vals); for(int i = 1; i < siz; i <<= 1){ vector<int> curr; for(int j = i; j < (i<<1) and j < siz; ++j){ curr.pb(vals[j]); } reverse(all(curr)); assert(is_sorted(all(curr))); } return ans; }
#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...