We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
usingnamespacestd;stringltrim(conststring&);stringrtrim(conststring&);vector<string>split(conststring&);/* * Complete the 'lowestTriangle' function below. * * The function is expected to return an INTEGER. * The function accepts following parameters: * 1. INTEGER trianglebase * 2. INTEGER area */intlowestTriangle(inttrianglebase,intarea){// Area of a triangle with base: a = (h_b*b)/2// find the smallest interger `h` such that there exist a triangle `h` base `b` having an area of at least `a`// so (h_b*b)/2 >= a // ==> h_b*b >= 2a// ==> h_b >= 2a/b// ==> h_b = ceil(2a/b)// ceil (x/y) = (x+y-1)/y (https://codeforces.com/blog/entry/78852)// ==> h_b = (2a + b -1)/breturn(2*area+trianglebase-1)/trianglebase;}intmain(){ofstreamfout(getenv("OUTPUT_PATH"));stringfirst_multiple_input_temp;getline(cin,first_multiple_input_temp);vector<string>first_multiple_input=split(rtrim(first_multiple_input_temp));inttrianglebase=stoi(first_multiple_input[0]);intarea=stoi(first_multiple_input[1]);intheight=lowestTriangle(trianglebase,area);fout<<height<<"\n";fout.close();return0;}stringltrim(conststring&str){strings(str);s.erase(s.begin(),find_if(s.begin(),s.end(),not1(ptr_fun<int,int>(isspace))));returns;}stringrtrim(conststring&str){strings(str);s.erase(find_if(s.rbegin(),s.rend(),not1(ptr_fun<int,int>(isspace))).base(),s.end());returns;}vector<string>split(conststring&str){vector<string>tokens;string::size_typestart=0;string::size_typeend=0;while((end=str.find(" ",start))!=string::npos){tokens.push_back(str.substr(start,end-start));start=end+1;}tokens.push_back(str.substr(start));returntokens;}
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Minimum Height Triangle
You are viewing a single comment's thread. Return to all comments →
Here's my solution: