summaryrefslogtreecommitdiff
path: root/2015/day20.cpp
diff options
context:
space:
mode:
Diffstat (limited to '2015/day20.cpp')
-rw-r--r--2015/day20.cpp23
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);
+}