Submission #1207647

#TimeUsernameProblemLanguageResultExecution timeMemory
1207647simona1230Packing Biscuits (IOI20_biscuits)C++20
Compilation error
0 ms0 KiB
#include "biscuits.h" #include <bits/stdc++.h> using namespace std; long long p[64],h[64]; long long ans,nd,b[64]; long long s[64]; void dfs(int i,long long curr) { //cout<<i<<" "<<curr<<endl; ans++; for(int j=i+1; j<60; j++) { if(curr+p[j]<=s[j]/nd) dfs(j,curr+p[j]); } } long long count_tastiness(long long x, std::vector<long long> a) { p[0]=1; for(int i=1;i<60;i++) p[i]=p[i-1]*2; s[0]=a[0]; for(int i=1;i<60;i++) { //cout<<p[i]<<endl; s[i]=s[i-1]; if(i<a.size())s[i]+=a[i]*p[i]; } nd=x; ans=0; dfs(-1,0); //cout<<ans<<endl; //////////////////// long long sum=0; p[0]=1; for(long long i=1; i<=125; i++) { if(1e18/p[i-1]<2)p[i]=1e18+1; else p[i]=p[i-1]*2; //cout<<p[i]<<endl; } for(long long i=0;i<a.size();i++) sum+=a[i]*p[i]; //cout<<sum/x<<endl; long long ans1=1; for(long long g=1;g<=sum/x;g++) { for(long long i=0;i<a.size();i++) h[i]=a[i]; long long maxx=0,num=0; while(num<x) { long long curr=g; for(long long i=a.size()-1;i>=0;i--) { long long need=min(h[i],curr/p[i]); h[i]-=need; curr-=need*p[i]; } if(curr!=0)break; num++; } if(num==x)ans1++; } if(ans1!=ans) { cout<<x<<endl; for(int i=0;i<a.size();i++) cout<<a[i]<<" "; cout<<endl; exit(0); } return ans; } vector<long long> c(10); void gen() { int k=5; int x=rand()%5+2; for(int i=0; i<k; i++) c[i]=rand()%100; cout<<count_tastiness(x,c)<<endl; } int main() { while(1) { gen(); } }

Compilation message (stderr)

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:46:22: warning: iteration 64 invokes undefined behavior [-Waggressive-loop-optimizations]
   46 |         if(1e18/p[i-1]<2)p[i]=1e18+1;
      |                 ~~~~~^
biscuits.cpp:44:25: note: within this loop
   44 |     for(long long i=1; i<=125; i++)
      |                        ~^~~~~
/usr/bin/ld: /tmp/ccTdiYTR.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc9JgCth.o:biscuits.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status