In this Drawing Book problem you have Given n and p, find and print the minimum number of pages that must be turned in in order to arrive at page p.
Problem solution in Python programming.
#!/bin/python3 import sys n = int(input().strip()) p = int(input().strip()) # your code goes here page_in_book = p//2 total_pages = n//2 from_front = page_in_book from_back = total_pages - page_in_book print(min(from_front,from_back))
Problem solution in Java Programming.
import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int p = in.nextInt(); int frontdist = p / 2; int backdist = n % 2 == 0 ? (n - p + 1) / 2 : (n - p) / 2; System.out.println(Math.min(frontdist, backdist)); // your code goes here } }
Problem solution in C++ programming.
#include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <string> #include <bitset> #include <cstdio> #include <limits> #include <vector> #include <climits> #include <cstring> #include <cstdlib> #include <fstream> #include <numeric> #include <sstream> #include <iostream> #include <algorithm> #include <unordered_map> using namespace std; int main(){ int n; cin >> n; int p; cin >> p; int min_left = 0; int cur_left = 0, cur_right = 1; while (cur_left != p && cur_right != p) { ++min_left; cur_left += 2; cur_right += 2; } int min_right = 0; cur_left = n % 2 == 0 ? n : n - 1; cur_right = cur_left + 1; while (cur_left != p && cur_right != p) { ++min_right; cur_left -= 2; cur_right -= 2; } cout << std::min(min_left, min_right); return 0; }
Problem solution in C programming.
#include <stdio.h> int main() { int n,p,j=0,a[100000]; scanf("%d",&n); scanf("%d",&p); for (int i=0;i<=n;i++) if (i%2==0) { j++; a[i]=j; a[i+1]=j; } if (a[p]-1<j-a[p]) printf("%d",a[p]-1); else printf("%d",j-a[p]); return 0; }
Problem solution in JavaScript programming.
process.stdin.resume(); process.stdin.setEncoding('ascii'); var input_stdin = ""; var input_stdin_array = ""; var input_currentline = 0; process.stdin.on('data', function (data) { input_stdin += data; }); process.stdin.on('end', function () { input_stdin_array = input_stdin.split("n"); main(); }); function readLine() { return input_stdin_array[input_currentline++]; } /////////////// ignore above this line //////////////////// function main() { var n = parseInt(readLine()); var p = parseInt(readLine()); var count = 0; var page = 1; while(page < p){ count++; page += 2; } if(n % 2 !== 0){ page = n - 1; } else { page = n; } var countTwo = 0; while(page > p){ countTwo++; page -= 2; } if(count < countTwo){ console.log(count); } else { console.log(countTwo); } }
there is a problem. total pages:6, i want to goto page:5. from back it should return 0, right? but python solution return 1.