본문 바로가기

PS/boj

[BOJ] 20743 Bus Numbers

문제 링크

www.acmicpc.net/problem/20743

풀이

$m$의 최댓값이 40만이므로, 어떤 정수 $x^3+y^3$이 40만 이하인 모든 경우에 대해 생성하여 개수를 센다.
그렇게 2개 이상의 서로 다른 방법으로 나타낼 수 있는 수가 우리가 찾는 정답이다.

Java 코드

더보기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int[] cnt = new int[400001];

        for (int i = 1; i * i * i <= 400000; ++i) {
            int rest = 400000 - i * i * i;
            for (int j = i; j * j * j <= rest; ++j) {
                cnt[i * i * i + j * j * j]++;
            }
        }

        int x = Integer.parseInt(in.readLine());
        for (int i = x; i > 0; --i) {
            if (cnt[i] > 1) {
                System.out.println(i);
                return;
            }
        }

        System.out.println("none");
    }
}

'PS > boj' 카테고리의 다른 글

[BOJ] 16265 Spreadsheets  (0) 2021.02.03
[BOJ] 5100 Jean and Joe’s Clothes  (0) 2021.02.02
[BOJ] 8711 Odchudzanie  (0) 2021.01.30
[BOJ] 19774 ABCD-код  (0) 2021.01.29
[BOJ] 8965 Circular Sequence  (0) 2021.01.27