#include #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; bool is_kadomatsu(int a,int b,int c){ if(a==b || a==c || b==c) return false; if(ac) return true; if(a>b && b>d>>a>>b>>c; if(d==0){ puts(is_kadomatsu(a,b,c)?"0":"-1"); return 0; } int ans=INT_MAX; // b が最大値になるケース if(b>0){ auto [ta,tb,tc]=make_tuple(a,b,c); int res=0; if(a>=b){ int k=(a-b)/d+1; res+=k; a-=k*d; } if(c>=b){ int k=(c-b)/d+1; res+=k; c-=k*d; } if(a>=0 && c>=0){ if(a==c){ if(a>=d || c>=d){ ans=min(ans,res+1); } } else{ ans=min(ans,res); } } a=ta; b=tb; c=tc; } // b が最小値になるケース { int res=0; if(a==c){ if(a>=d) a-=d; else c-=d; res++; } if(b>=min(a,c)){ int k=(b-min(a,c))/d+1; res+=k; b-=k*d; } if(a>=0 && b>=0 && c>=0){ ans=min(ans,res); } } printf("%d\n",ans