目录

AtCoder B 207

AtCoder

Leon | 27 Jun 2021

题目描述

有一个容器一开始含有A个青色的球

然后Takahashi可以做以下的操作

将B个青色的球和C个红色的球加进容器中

Takahashi的目标是实现一个青色的球的数量顶多是红色球的D倍

找出能不能实现这个目标,如果可以则找出最小的操作步数

否则输出-1

思路

根据题目可以列出以下式子(n为步数) \(A+nB\leq nDC\) 则可以推出以下的式子 \(n\ge \frac{A}{DC-B}\) 则当上式不成立时,则不可能实现

若上式子成立,则给n的最小值向上取整

复杂度,直接列式子O(1)

import java.util.*;
import java.io.*;
public class hydrate{
    public static void main (String [] args){
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int c = in.nextInt();
        int d = in.nextInt();
        if(d*c-b==0) System.out.println("-1");
        else{
            double ans = 1.0*a/(d*c-b);
            if(ans<0) System.out.println("-1");
            else System.out.println((int)Math.ceil(ans));
        }
    }
}

记得一定要判断除数不为零,为零时也是不可实现


评论区