|
|
#include <iostream> #include <cmath> int main() { int n, k; std::cin >> n >> k; if (n < k) { std::cout << 2; } else { double speed = 0.5 * k; int result = static_cast<int>(std::ceil(n / speed)); std::cout << result; } } a,b=map(int, input().split()) if a==1: print(2) exit() if (a*2)//b<a*2/b: print(a*2//b+1) else: print(a*2//b) Edited by author 23.06.2026 16:44 n,k = map(int,input().split()) if k==1 or n==1: print(2*n) else: if 2*n%k==0: print(2*n//k) else: print(2*n//k+1) Не совсем понял тестовый пример 3 2 то есть 3 котлеты и можно максимум 2 котлеты жарить в моменте вначале положим 2 котлеты с одной стороны потом эти же с другой стороны потом остается 1 котлета мы ее можем пожарить с одной стороны это 1 минута и ее же с другой то есть на нее необходимо 2 минуты значит всего необходимо 4 минуты почему ответ 3 ? как так пожарить Edited by author 11.06.2023 16:57 Edited by author 11.06.2023 16:57 Представь вот мы сначала жарим две котлеты с одной стороны, первую меняем на третью, а вторую переворачиваем. Жарим еще минуту и теперь у нас есть одна готовая котлета и две наполовину готовые, и дожариваем их еще минуту. Вот и получается всего три минуты. Consider 2 cases: (1) K >= N (2) K < N and fry one side of each steak first. Try cases like: N=7,K=1; N=7,K=2; up to N=7,K=6 and find the pattern. n = int(input()) k=int(input()) n=n*2 if n % k ==0: print(n/k) else: a=int(n/k)+1 print(a) I can't find my mistake. It keep telling me "Runtime error" the "only" input line contains... n = int(input()) k=int(input()) n=n*2 if n % k ==0: print(n/k) else: a=int(n/k)+1 print(a) I can't find my mistake. It keep telling me "Runtime error" Подскажите, пожалуйста, что не так с кодом? Wrong answer, тест 3. Edited by author 09.10.2022 19:48 Edited by author 09.10.2022 19:48 Почему так не проходит(ошибка на 13): #include <iostream> int main() { int n,k; std::cin>>n>>k; if(n<=k) std::cout<<2; else std::cout<<n*2/k+n*2%k; return 0; } А так проходит: #include <iostream> int main() { int n,k; std::cin>>n>>k; if(n<=k) std::cout<<2; else{ if(n*2 % k == 0) std::cout<<n*2/k; else std::cout<<n*2/k+1; } return 0; } Ну или тернар(тоже не проходит - ошибка на 13): #include <iostream> int main() { int n,k; std::cin>>n>>k; (n<=k)?std::cout<<2:std::cout<<n*2/k+n*2 % k; return 0; } Может я чего не понимаю, может всё-таки где-то приоритет потерял, но ведь идентично же. Edited by author 08.10.2021 11:51 Теперь понял, %k может вернуть и больше, чем 1 Edited by author 08.10.2021 12:00 Edited by author 08.10.2021 12:02 C++ ответ: #include <iostream> int main() { int n,k; std::cin>>n>>k; (n<=k)?std::cout<<2:(n*2%k==0)?std::cout<<n*2/k:std::cout<<n*2/k+1; return 0; } Edited by author 08.10.2021 12:03 Lets say there are 5 Steaks and capacity of pan is 4. Step 1: Cook first 4 one side for 1 minute. Step 2: Replace 1 one sided cooked steak with completely uncooked (remaining) one and cook for next 1 minute. Step 3: Now the chef has 3 completely cooked and 2 Half cooked. Cook the remaining 2 half cooked for another one minute. so 1 minute at each step, hence 3 minutes total minimal time. However, story doesn't end here :-). Lets take another example Now, Lets say there are 7 Steaks and capacity of pan is 4. Step 1: Cook first 4 one side for 1 minute. Step 2: Replace 3 one sided cooked steak with completely uncooked (remaining) three and cook for next 1 minute. Step 3: Now the chef has 1 completely cooked and 6 Half cooked. Cook 4 steaks from half cooked six for another one minute. Step 4: Last cook final 2 half cooked one for another one minute So total minimum time take is 4 minute. 1 minute at each step. Please keep in mind the scenarios where 0 steaks or steaks less then cooking capacity of pan. Edited by author 08.06.2017 20:19 Edited by author 08.06.2017 20:20 the scenario with n == 0 or k == 0 won't happen as in the statements it says 1 <= n, k <= 1000 import java.io.*; import java.util.*; public class task { public static void main(String[] args) { Scanner in = new Scanner(System.in); PrintWriter out = new PrintWriter(System.out); int n = in.nextInt(); int k = in.nextInt(); int t; if(n>=1 && k<=1000) { if((int) (n * 2.0 / k) == (n * 2.0 / k)) t = (int) (n * 2.0 / k); else t = 1 + (int) (n * 2.0 / k); out.print(t);
} out.flush(); } } Братан эту задачку на 1 вывод решить можно) зачем тебе эти условия Edited by author 29.10.2015 01:41 Я одного не пойму, как можно обжарить 3 бифа с обеих сторон за 3 минуты, если влазит на сковороду всего 2 шт???))) На первой минуте жаришь первые 2шт с одной стороны, на второй их же со второй. На третей минуте последний биф 1 сторона 4я минута 2я сторона 3го бифа!!. В итоге правильный ответ 4 минуты, а не 3 как написано в примерах. Изи. Смотри 1 и 2 это первые и вторые стороны бифов. B это номер бифа. Разделю их точкой первая минута: 1.1 1.2 вторая минута: 2.1 1.3 третья минута: 2.2 2.3 Я тоже также думал, пока не прочитал в дискуссии: http://acm.timus.ru/forum/thread.aspx?id=36182&upd=636324641214598077 1-я минута - Жарится одна сторона двух стейков.(1-я сторона) 2-я минута - Жарится один из первых стейков(2-я сторона) + третий стейк(1-я сторона) 3-я минута - Жарится второй из первых стейков(2-я сторона) + третий стейк(2-я сторона) i am doing (n%k)+(n/k) after putting restriction on k(k<=1000) and n(n>=1). but my answer is said to be wrong.please help. Edited by author 30.06.2013 01:11 14%4 +14/4=2+3=5 but ans is 4. every pancake has 2 sides so 13 pancake has 26 sides.pan fry can fry 4 pancakes at one minute one side. so, IF(2*13%4>=1) sum=((2*n)/k)+1; else{ sum=(2*n)/k; } calculate it . import java.util.Scanner; public class Zadachi { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int x = 2; if(n<=k){ System.out.print(x); }else{
if (n*2 % k == 0){ System.out.print(n*2/k); }else{ System.out.print(n*2/k+1); } }
} } #include "iostream" using namespace std; int main() { int a, b, rz; cin >> a >> b; if (b == 2 && a != 1 || b == 1 && a != 1) { rz = 2 * a / b; } else { if (a % b != 0) { rz = 2 * (a / b + 1); } else { rz = 2 * a / b; } } cout << rz; return 0; } i tested it a lot, pleas help may be i am so silly.... public class Pan { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int k = scanner.nextInt(); int m = 2*n; if (m%k == 0){ System.out.println(m/k); } else{ System.out.println(m/k+1); } } } why Wrong Answer? import static java.lang.Math.*; import java.util.*; public class UralSteaks { public static void main(String[] args) { Scanner in=new Scanner(System.in); int n,k; n=in.nextInt(); k=in.nextInt(); int t=(int)ceil(2*(float)n / (float)k); System.out.print(t); }
} help plz! New tests have been added to the problem, all accepted solutions have been rejudged. 490 authors have lost their AC. |
|
|