Go: package main

import (
        "fmt"
        "math"
)

func main() {
        var v, t, h float64
        for {
                _, err := fmt.Scanf("%f", &v)
                if err != nil {
                        break
                }
                t = v / 9.8
                h = 4.9 * t * t
                n := math.Floor(h/5+1.0) + 1.0
                fmt.Printf("%d\n", int(n))
        }
}

C++: /*
NOTE :
*min_element(.begin(),.end())
*max_element(.begin(),.end())
stack push pop top
queue push pop front
priority_queue<> pq
 push()  pop() size()  top()
map<>
 find() begin() end() insert(map<>::value_type())
pair<>
sort(.begin(), .end())
sort(arr, arr+N)
sort(a, a+N, greater<int>())
binary_search(vc.begin(), vc.end(), x)  //binary_search???true, false?????????
vector<int>::iterator lit = lower_bound(vc.begin(), vc.end(), x);
  lower_bound?????????????????????"??\???"????????????????????????????????????????????¬???????????????
vector<int>::iterator uit = upper_bound(vc.begin(), vc.end(), x);
  upper_bound????????????????????????"?¶???????"?????????????????????????????????????????¬???????????????
*/
#include <iostream>
#include <cstdio>
#include <climits>
#include <cmath>
#include <cassert>
#include <sstream>
#include <algorithm>
#include <valarray>
#include <utility>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <map>
#include <set>

#define MAX 100
#define INF 1<<20
#define LLINF 10e12 // 1<<31 // 2^31
#define REP(i,n) for(int i=0;i<n;i++)
#define REP2(i,a,n) for(int i=(a);i<(n);i++)
#define SET(a,c) memset(a,c,sizeof a)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define FOREACH(i,c) for(auto (i) : (c))
#define BIT(i,j) ((i)>>(j))&1
#define ALL(o) (o).begin(), (o).end()
#define ERASE(o) (o).erase(unique(ALL((o))), (o).end());
#define SQ(x) ((x)*(x))

using namespace std;
typedef long long ll;
typedef valarray<int> array_t;
/////

int main()
{
  cin.tie(0);
  ios::sync_with_stdio(false);
  // FROM HERE
  double v;
  while(cin >> v)
  {
    double h = 0.5 * v * v / 9.8;
    printf("%d\n",((int)(h*0.2)+1)+1);
  }
  return 0;
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <utility>
#include <sstream>
#include <complex>

using namespace std;

#define FOR(i,a,b) for(long long i=(a);i<(b);i++)
#define REP(i,N) for(long long i=0;i<(N);i++)
#define ALL(s) (s).begin(),(s).end()
#define fi first
#define se second

#define PI acos(-1.0)
#define INF 1000000007

typedef long long ll;
typedef pair<ll, ll> P;
typedef pair<double, double> PD;
typedef pair<string, ll> PS;
typedef vector<ll> V;

ll a;
double v, h;

int main(){
	while (cin >> v){
		h = 4.9*(v / 9.8)*(v / 9.8);
		a = (h + 5) / 5;
		if (h + 5 % 5 != 0)a++;
		cout << a << endl;
	}
}

C++: #define _USE_MATH_DEFINES
#include <iostream>
#include <queue>
#include <vector>
#include <math.h>
#include <algorithm>
#include <iomanip>
#include <string>
#include <stack>
#include <cctype>
#include <cstdlib>
using namespace std;

#define INF (1 << 20)
#define EPS (1e-10)
#define EQ(a,b) (fabs((a)-(b)) < EPS)

int main(){
	double v;
	while (cin >> v) {
		int n = 0;
		while (n < v * v / 98 + 1.0) ++n;
		cout << n << endl;
	}
	return 0;
}

C++: #include <bits/stdc++.h>

#define rep(i, n) for (int i = 0; i < int(n); i++)
#define rrep(i, n) for (int i = int(n) - 1; i >= 0; i--)
#define reps(i, n) for (int i = 1; i <= int(n); i++)
#define rreps(i, n) for (int i = int(n); i >= 1; i--)
#define repc(i, n) for (int i = 0; i <= int(n); i++)
#define rrepc(i, n) for (int i = int(n); i >= 0; i--)
#define repi(i, a, b) for (int i = int(a); i < int(b); i++)
#define repic(i, a, b) for (int i = int(a); i <= int(b); i++)
#define each(x, y) for (auto &x : y)
#define all(a) (a).begin(), (a).end()
#define bit(b) (1ll << (b))

using namespace std;

using i32 = int;
using i64 = long long;
using u64 = unsigned long long;
using f80 = long double;
using vi32 = vector<i32>;
using vi64 = vector<i64>;
using vu64 = vector<u64>;
using vf80 = vector<f80>;
using vstr = vector<string>;

inline void yes() { cout << "Yes" << '\n'; exit(0); }
inline void no() { cout << "No" << '\n'; exit(0); }
inline i64 gcd(i64 a, i64 b) { if (min(a, b) == 0) return max(a, b); if (a % b == 0) return b; return gcd(b, a % b); }
inline i64 lcm(i64 a, i64 b) { return a / gcd(a, b) * b; }
inline u64 xorshift() { static u64 x = 88172645463325252ull; x = x ^ (x << 7); return x = x ^ (x >> 9); }
void solve(); int main() { ios::sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(16); solve(); return 0; }
template <typename T> class pqasc : public priority_queue<T, vector<T>, greater<T>> {};
template <typename T> class pqdesc : public priority_queue<T, vector<T>, less<T>> {};
template <typename T> inline void amax(T &x, T y) { if (x < y) x = y; }
template <typename T> inline void amin(T &x, T y) { if (x > y) x = y; }
template <typename T> inline T power(T x, i64 n, T e = 1) { T r = e; while (n > 0) { if (n & 1) r *= x; x *= x; n >>= 1; } return r; }
template <typename T> istream& operator>>(istream &is, vector<T> &v) { each(x, v) is >> x; return is; }
template <typename T> ostream& operator<<(ostream &os, vector<T> &v) { rep(i, v.size()) { if (i) os << ' '; os << v[i]; } return os; }
template <typename T, typename S> istream& operator>>(istream &is, pair<T, S> &p) { is >> p.first >> p.second; return is; }
template <typename T, typename S> ostream& operator<<(ostream &os, pair<T, S> &p) { os << p.first << ' ' << p.second; return os; }

void solve() {
  f80 v;
  while (cin >> v) {
    int n = ceil((4.9 * v * v / 9.8 / 9.8 + 5) / 5);
    cout << n << '\n';
  }
}

C++: #include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
#include <stack>
using namespace std;

int main(){
	double v;
	while(cin >> v){
		int n = 0;
		while(5 * n - 5 < v * v / 19.6)n++;
		cout << n << endl;
	}
}

C++: #include <iostream>
#include <cstdio>
using namespace std;
int LeastHeight(double v) {
  double y;
  int N;
  y = v * v / 19.6;
  N = int((y + 5) / 5 + 1);
  return N;
}

int main() {
  double v;
  while(cin >> v) {
	cout << LeastHeight(v) << endl;
  }
  //data();
  return 0;
}


/*-- check --*/
void data() {
  double v, y, t;
  int N;

  printf("t\tv\ty\tN\n");
  for(t = 1; t <=10; t += 0.5) {
	v = 9.8 * t;
	y = v * v / 19.6;
	N = int((y + 5) / 5 + 1);
	printf("%.1f\t%.2f\t%.2f\t%d\n", t, v, y, N);
  }
}

C++: #include <cstdio>
#include <cmath>

int main(){
  double v;
  while(~scanf("%lf",&v))
    printf("%d\n",(int)v*v/98+2);
}

C++: #include<bits/stdc++.h>
using namespace std;
int serch(double speed,int floor)
{
    if(speed<9.8*sqrt((5*floor-5)/4.9))return floor;
    return serch(speed,floor+1);
}
int main()
{
    int n;
    double x,y,qux;
    while(cin>>qux){
        n=serch(qux,1);
        cout<<n<<endl;
    }
}

C++: #include<iostream>
#include<math.h>
using namespace std;

int main(){
	double limit;
	double t;
	double y;
	double n;
	while(cin >> limit){
		t = limit / 9.8;
		y = 4.9 * t * t;
		n = (int)((y+5)/5+0.9);
		cout << n << endl;
	}
	return 0;
}

C++: #include <iostream>
#include <cmath>

using namespace std;

const static double g = 9.8;
int main() {
  // Energy conservation law
  // mgh = (1/2)mv^2
  double v;
  while(cin >> v) {
    double h = (1./2.) * v * v / g;
    int N = 1;
    while(true) {
      if((double)(N*5 - 5) > h) {
        break;
      }
      N++;
    }
    cout << N << endl;
  }
}

C++: #include <iostream>
using namespace std ;

int main()
{
	double get ;
	double high ;
	int sol ;

	while( cin >> get )
	{
		high = 4.9 *(get/9.8)*(get/9.8) ;

		int tmp = high*100 ;
		if( tmp %5 == 0 )
		{
			sol = high/5 +1 ;
		}
		else
		{
			sol = high/5 +2 ;
		}

		cout << sol << endl ;
	}

	return 0 ;
}