Go: package main

import "fmt"

func main() {
	var v float64
	for {
		i, _ := fmt.Scan(&v)
		if i == 0 {
			break
		}
		t := v / 9.8
		y := 4.9 * t * t

		N := 0
		for {
			N++
			if height := 5*N - 5; float64(height) > y {
				fmt.Println(N)
				break
			}
		}
	}
}

C++: #include<iostream>
#include<algorithm>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<vector>
#include<string>
#include<cmath>
using namespace std;
#define REP(i, j) for(int i = 0; i < j; i++)
#define FOR(i, j, k) for(int i = j; i < k; i++)
const double EPS = 1e-8;
const int INF = 1e9;

int main(){
    double minv;
    while(cin >>minv){
        double t = minv / 9.8, y = 4.9 * t * t;
        cout <<(int)(y / 5) + ((y < 5.0 || abs((int)(y / 5) * 5 - y) < EPS)? 1 : 2) <<endl;
    }
    return 0;
}

C++: #include<iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
	double v, y, t;
	while (cin >> v){
		t = v / 9.8;
		y = 4.9 * t * t;
		cout << (int)((y + 5) / 5) + 1 << endl;
	}
}

C++: #include <bits/stdc++.h>
using namespace std ;

#define pb(n) push_back(n)
#define fi first
#define se second
#define X real()
#define Y imag()
#define all(r) (r).begin(),(r).end()
#define gsort(st,en) sort((st),(en),greater<int>())
#define vmax(ary) *max_element(all(ary))
#define vmin(ary) *min_element(all(ary))
#define debug(x) cout<<#x<<": "<<x<<endl
#define fcout(n) cout<<fixed<<setprecision((n))
#define scout(n) cout<<setw(n)
#define vary(type,name,size,init) vector< type> name(size,init)

#define rep(i,n) for(int i = 0; i < (int)(n);++i)
#define REP(i,a,b) for(int i = (a);i < (int)(b);++i)
#define repi(it,array) for(auto it = array.begin(),end = array.end(); it != end;++it)
#define repa(n,array) for(auto &n :(array))

using ll = long long;
using vi = vector<int>;
using vl = vector<ll>;
using dict = map<string,int>;
using comd = complex<double>;
using pii = pair<int,int> ;

constexpr int imax = ((1<<30)-1)*2+1 ;
constexpr int inf = 100000000;
constexpr double PI = acos(-1.0) ;
double eps = 1e-10 ;
const int dy[] = {-1,0,1,0};
const int dx[] = {0,-1,0,1};

inline bool value(int x,int y,int w,int h){
  return (x >= 0 && x < w && y >= 0 && y < h);
}

double CalcDist(comd p1, comd p2){
  return sqrt(pow(p1.X - p2.X,2.0) + pow(p1.Y -p2.Y,2.0));
}

template<typename T>
void Unique(vector<T> &v){
  sort(all(v));
  v.erase(all(v),v.end());
}

template<typename T>
T ston(string& str, T n){
  istringstream sin(str) ;
  T num ;
  sin >> num ;
  return num ;
}

void Ans(bool f){
  if(f) cout << "YES"<<endl;
  else cout << "NO"<<endl;
}

int main(){
  cin.tie(0);
  ios::sync_with_stdio(false);
  double minv,v,t;
  while(cin >> minv){
    int N = 2,h;
    while(1){
      h = 5 * N - 5;
      t = sqrt(h/4.9);
      v = 9.8 * t ;
      if(minv <= v){
        cout << N<<endl;
        break;
      }
      else{
        ++N;
      }
    }
  }
  return 0;
}

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

int main()
{
	long double v, t, y;
	int count=0;
	int ans[100];
	while (cin >> v) {
		int n = 0;
		t = v / 9.8;
		y = 4.9*t*t;
		while(1){
			n++;
			if (y <= 5 * n - 5) {
				ans[count] = n;
				break;
			}
		}
		count++;
	}
	for (int a = 0; a < count; a++)
		cout << ans[a] << endl;
}

C++: // 失敗するからこそ そこから立ち向かって行く強さがあってそんな強さが本当の強さだと私は思うから
#ifdef DAIJOBU
#include "/home/v-o_o-v/deb.h"
#define deb(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#include <bits/stdc++.h>
#define deb(x...)
#endif 

using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	long double v;
	while(cin >> v){
		long double t = v / 9.8;
		long double y = 4.9 * t * t;
		long double floor = (y + 5) / 5.0;
		cout << (int)ceil(floor) << '\n';
	}
	return 0;
}
// Write Here

C++: #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<ctime>
#include<cctype>
#include<climits>
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<list>
#include<queue>
#include<deque>
#include<algorithm>
#include<numeric>
#include<utility>
#include<complex>
#include<memory>
#include<functional>

#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
#define FOR(i, m, n) for(int i = m;i < n;i++)
#define FORR(i, m, n) for(int i = m;i >= n;i--)
#define SORT(v, n) sort(v, v+n);
#define VSORT(v) sort(v.begin(), v.end());
#define llong long long
#define pb(a) push_back(a)
#define INF 999999999
using namespace std;

typedef vector<int> vi;
typedef vector<long long> vl;
typedef vector<double> vd;
typedef pair<int, int> pii;
typedef pair<long, long> pll;
typedef long long ll;

int dy[] = { 0, 0, 1, -1, 0 };
int dx[] = { 1, -1, 0, 0, 0 };

int main(){
	ios::sync_with_stdio(false);

	double vmin;
	double t, y;
	int n;

	while(scanf("%lf", &vmin)!=EOF){
		t=vmin/9.8;
		y=4.9*t*t;

		n=(int)((y+5)/5+1);

		printf("%d\n", n);
	}

}

C++: #include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
int main()
{
	double x;
	while(cin>>x)printf("%.0f\n",ceil((x*x+98)/98));
    return 0;
}

C++: #include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <cstring>
#include <climits>
#include <cmath>
#include <cfloat>

using namespace std;

double vn, yn, out, tn;

int main()
{
	
	while( cin >> vn, !cin.eof())
	{
		tn = vn/9.8;
		
		yn = 4.9*pow(tn, 2);
		
		for( int i = 1; i < INT_MAX; i++)
		{
			int f = 0, flr = (float)(i-1)*5;
			
			if( flr >= yn )
			{
				cout << i << endl;
				f = 1;
				break;
			}
			
			if(f)
				break;
		}
		
	}
	
	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
  double v;
  while(cin >>v){
    for(int i=1;;i++){
      if(v*v/19.6<5*i-5){
	cout <<i<<endl;
	break;
      }
    }
  }
  return 0;
}

C++: #include<stdio.h>

int main()
{
	int n;
	double v,y;
	while(scanf("%lf",&v) !=EOF)
	{
		y=(v/2.0)*(v/9.8);
		n=(y+5)/5;
		printf("%d\n",n+1);
	}
	return 0;
}

C++: #include <iostream>
using namespace std;
int main(){
  double v;
  while(cin>>v){
    double y,t;
    t = v/9.8;
    y = 4.9*t*t;
    cout<<(int)(y/5+2-1e-9)<<endl;
  }
}

C++: #include <cstdio>
#include <cstdlib>
#include <cstdint>
#include <cstring>
#include <cctype>
#include <iostream>
#include <sstream>
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <functional>
#include <complex>
using namespace std;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef long long ll;
const double PI = 3.141592653589793238462643383279502884L;
const int LARGE_PRIME = 1000000007;
#define all(c) (c).begin(), (c).end()
#define rall(c) (c).rbegin(), (c).rend()
#define tr(c, i) for(auto i = (c).begin(); i != (c).end(); i++)
#define rtr(c, i) for(auto i = (c).rbegin(); i != (c).rend(); i++)
#define repfn(i,a,cont,next) \
  for(auto i = (a); [=](){return(cont);}(); i = [=](){return(next);}())
#define repby(i,a,b,s) repfn(i,a,i<b,i+s)
#define repab(i,a,b) repby(i,a,b,1)
#define rep(i,b) repab(i,0,b)
#define pb push_back
#define sz(c) int((c).size())

double find_floor(double v)
{
  double t = v / 9.8;
  double y = 4.9 * t * t;
  return ceil(y/5)+1;
}

int main(int argc, char **argv)
{
  double v;
  while (cin >> v) {
    cout << find_floor(v) << endl;
  }
  return 0;
}

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

using namespace std;

void solve()
{
	double v;
	while(cin >> v, v)
	{
		int N = 2;
		while(true)
		{
			double velocity = 1.4 * sqrt(10.0 * (5 * N - 5));
			if(velocity >= v)
			{
				cout << N << endl;
				break;
			}
			++N;
		}
	}
}

int main()
{
	solve();
	return(0);
}

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

int main() {
	double v, y; int ans;
	while (cin >> v) {
		y = 4.9 * pow((v / 9.8), 2);
		ans = (int)((y + 5) / 5) + 1;
		cout << ans << endl;
	}
	return 0;
}