diff options
Diffstat (limited to '2015/day20.cpp')
-rw-r--r-- | 2015/day20.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/2015/day20.cpp b/2015/day20.cpp new file mode 100644 index 0000000..2da1fa2 --- /dev/null +++ b/2015/day20.cpp @@ -0,0 +1,23 @@ +#include <iostream> +#include <cstdlib> + +using namespace std; + +int main(void){ + const int limit=10000000; //1e7 + cerr<<"Alloc..."; + int *scores=(int*)calloc(limit+1,sizeof(int)); + cerr<<" done."<<endl; + int elf,i,ilimit; + for(elf=1;elf<=limit;elf++){ + ilimit=limit/elf; + if(ilimit>50)ilimit=50; + for(i=1;i<=ilimit;i++){ + scores[elf*i]+=elf*11; + } + if(scores[elf]>=36000000)break; + } + for(i=1;i<20;i++)cout<<scores[i]<<' '; cout<<endl; + cout<<elf<<endl; + free(scores); +} |