Submission #963450

#TimeUsernameProblemLanguageResultExecution timeMemory
9634508pete8Packing Biscuits (IOI20_biscuits)C++17
21 / 100
55 ms34136 KiB
//#include "biscuits.h" #include<iostream> #include<stack> #include<map> #include<vector> #include<string> #include<unordered_map> #include <queue> #include<cstring> #include<limits.h> #include <cassert> #include <cstdint> #include<cmath> #include<set> #include<algorithm> #include <iomanip> #include<numeric> //gcd(a,b) #include<bitset> using namespace std; #define ll long long #define f first #define endl "\n" #define s second #define pii pair<int,int> #define ppii pair<int,pii> #define vi vector<int> #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define F(n) for(int i=0;i<n;i++) #define lb lower_bound #define ub upper_bound #define fastio ios::sync_with_stdio(false);cin.tie(NULL); #pragma GCC optimize ("03,unroll-loops") using namespace std; #define int long long #define double long double int lg=60; long long count_tastiness(long long x, vector<ll>v) { int sum; if(x==1){ int k=v.size(); vector<int>nv(k+65); k=nv.size(); for(int i=0;i<k-1;i++){ if(i<v.size())nv[i]+=v[i]; if(nv[i]==0)continue; if(nv[i]%2)nv[i+1]+=(nv[i]/2),nv[i]=1; else nv[i+1]+=((nv[i]-2)/2),nv[i]=2;//spread } int idk=2*k; vector<vector<int>>dp(k+5,vector<int>(idk+5,0)); dp[0][0]=1; for(int i=0;i<k;i++){ for(int j=idk;j>=nv[i];j--)dp[i][j]=dp[i][j-nv[i]];//shifting for(int j=nv[i]-1;j>=0;j--)dp[i][j]=0; for(int j=idk;j>=0;j--){ if(j-x>=0)dp[i+1][(j-1)/2]+=dp[i][j]; dp[i+1][(j/2)]+=dp[i][j]; } } sum=0;//not using anything for(int i=0;i<=idk;i++)sum+=dp[k][i]; return sum; } else{ int k=v.size(); sum=0; for(auto i:v)sum+=i; if(sum>100000)assert(0); vector<vector<int>>dp(k+63,vector<int>(sum+5,0)); dp[0][0]=1; for(int i=0;i<=k+61;i++){ if(i<v.size()){ for(int j=sum;j>=v[i];j--)dp[i][j]=dp[i][j-v[i]];//shifting for(int j=v[i]-1;j>=0;j--)dp[i][j]=0; } for(int j=sum;j>=0;j--){ if(j-x>=0)dp[i+1][(j-x)/2]+=dp[i][j];//use x dp[i+1][(j/2)]+=dp[i][j];// } } int ans=0;//not using anything for(int i=0;i<=sum;i++)ans+=dp[k+62][i]; return ans; } } /* int32_t main(){ int x,k;cin>>x>>k; vector<int>in(k); for(int i=0;i<k;i++)cin>>in[i]; cout<<count_tastiness(x,in)<<'\n'; }*/

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:46:8: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |    if(i<v.size())nv[i]+=v[i];
      |       ~^~~~~~~~~
biscuits.cpp:74:8: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |    if(i<v.size()){
      |       ~^~~~~~~~~
#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...