Submission #378214

#TimeUsernameProblemLanguageResultExecution timeMemory
378214ThistlePacking Biscuits (IOI20_biscuits)C++14
42 / 100
1088 ms16176 KiB
#include "biscuits.h" #include <vector> #include<iostream> #include<algorithm> #include<unordered_map> #include<map> using namespace std; using ll=long long; using H=pair<ll, ll>; using vi=vector<ll>; #define rng(i,a,b) for(int (i)=(a);(i)<(b);(i)++) #define rep(i,n) rng((i),(0),(n)) #define pb push_back #define vec vector #define all(a) (a).begin(),(a).end() #define fs first #define sc second #define siz(a) ll((a).size()) #pragma GCC target("avx2") #pragma GCC optimize("O3") long long count_tastiness(long long x, std::vector<long long> a) { ll k=siz(a); a.resize(60); rng(i,k,60) a[i]=0; unordered_map<ll, ll>mp[2]; //remain cookie -> able number mp[0][0]=1; rep(i,60){ auto& now=mp[i&1]; auto& nxt=mp[(i+1)&1]; nxt.clear(); for(auto g:now){ ll t=g.fs; t+=a[i]; if(t>=x) nxt[(t-x)>>1]+=g.sc; nxt[t>>1]+=g.sc; } } ll ans=0; for(auto g:mp[0]){ ans+=g.sc; } return ans; }

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:11:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
   11 | #define rng(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
      |                            ^
biscuits.cpp:27:2: note: in expansion of macro 'rng'
   27 |  rng(i,k,60) a[i]=0;
      |  ^~~
biscuits.cpp:11:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
   11 | #define rng(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
      |                            ^
biscuits.cpp:12:18: note: in expansion of macro 'rng'
   12 | #define rep(i,n) rng((i),(0),(n))
      |                  ^~~
biscuits.cpp:31:2: note: in expansion of macro 'rep'
   31 |  rep(i,60){
      |  ^~~
#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...