//#include //#include //#include #include #include #include #include #include #include #include #include #include #include #include #include #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) #define deg(x) cout<< #x"=" << (x) << endl; #define degg(x,y) cout<< #x"="<< (x) <<","<< #y"="<< (y) < pii; typedef pair pll; typedef priority_queue,greater > xqueue; typedef priority_queue dqueue; //typedef tree,rb_tree_tag,tree_order_statistics_node_update> x_rb; //typedef tree,rb_tree_tag,tree_order_statistics_node_update> d_rb; const ll INF=9e18; const int inf=2147483647; ll qpow(ll a,ll b,ll mod) { ll r=1; for(; b; b>>=1) { if(b&1) r=(r*a)%mod; a=(a*a)%mod; } return r; } const int N=2e5+5; double look(int x) { if(x>=95) return 4.3; else if(x>=90) return 4.0; else if(x>=85) return 3.7; else if(x>=80) return 3.3; else if(x>=75) return 3; else if(x>=70) return 2.7; else if(x>=67) return 2.3; else if(x>=65) return 2; else if(x>=62) return 1.7; else if(x>=60) return 1; else return 0; } double lk(int x) { return look(x/2)+look(x-x/2); } void work() { double ans[405]; for(int x=0;x<=400;x++) { ans[x]=0; for(int i=0;i<=x;i++) { for(int j=0;j<=x-i;j++) { int s=x-i-j; if(s>200) continue; ans[x]=max(ans[x],look(i)+look(j)+lk(s)); } } //degg(x,ans[x]); } int t; sca(t); while(t--) { int x; sca(x); printf("%.01f\n",ans[x]); } } int main() { #ifdef Local freopen("1.txt","r",stdin); #endif // mm work(); return 0; }