#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define double float #define cos cosf #define sin sinf #define sincos sincosf #define sqrt sqrtf #define PI (double)3.14159265358979323846 struct S { double x,y,r; double v,a; } s[12]; double limit=2000; double dp[1<<12][12]; static inline double sq(double x){ return x*x; } static inline double f(double ix,double iy,double it,double lo,double hi,int j){ for(int k=0;k<18;++k){ double mid=(lo+hi)*.5f; double jt=it+mid; double ja=s[j].a+s[j].v*jt; double cv,sv; sincos(ja,&sv,&cv); double jx=s[j].x+s[j].r*cv; double jy=s[j].y+s[j].r*sv; if(sq(jx-ix)+sq(jy-iy)it+lo){ double r=f(ix,iy,it,lo,hi,j); if(dp[m|1<r){ dp[m|1<r){ z=r; } } printf("%f",z); }