Problem:
Score : 100 points

Problem Statement

Takahashi wants to print a document with N pages double-sided, where two pages of data can be printed on one sheet of paper.

At least how many sheets of paper does he need?

Constraints

N is an integer.

1 \leq N \leq 100

Input

Input is given from Standard Input in the following format:

N

Output

Print the answer.

Sample Input 1

5

Sample Output 1

3

By printing the 1-st, 2-nd pages on the 1-st sheet, 3-rd and 4-th pages on the 2-nd sheet, and 5-th page on the 3-rd sheet, we can print all the data on 3 sheets of paper.

Sample Input 2

2

Sample Output 2

1

Sample Input 3

100

Sample Output 3

50

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <bits/stdc++.h>
#include <functional>
#include <iostream>
#define  pb push_back
#define  xx first
#define  yy second
//#define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

using namespace std;

typedef long long ll;
typedef vector<string> vi;
typedef pair<int,int> pi;
const int N = 2e5+10;
bool pr[N];
vector<int>prime;
void sieve(){

  for(int i = 4; i<=N; i+=2){
    pr[i] = 1;
  }
  for(int i = 3; i*i<=N; i+=2){

     if(pr[i]==0){
        for(int j=i*i; j<=N; j+=i)
        pr[j] = 1;
     }
  }
  for(int i = 2;i<=N; i++){
    if(pr[i]==0){
        prime.pb(i);
    }
  }
  return ;
}

int phi(int n){

    int res = n;
     for(int  i =0; i<prime.size() && i*i<=n; i++){
            if(n%prime[i]==0){
            while(n%prime[i]==0){
                n/=prime[i];
            }
          res = res-res/prime[i];
        }
     }

     if(n>1){
        res = res - res/n;
     }

     return res;
}



int main()
{
     int n;
     cin >> n;
     cout << (n+1)/2 << endl;

    return 0;
}