P1011역

2981 단어
바로 슈퍼 무적
전혀 주석이 없다
초미 양식
AC 코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    static final int maxn = 30;
    static int a, n, m, x;
    static int[] nums = new int[maxn];
    static int[] getOn = new int[maxn];
    static int[] getOff = new int[maxn];
    public static void main(String[] args) {
        FastScanner fs = new FastScanner();
        a = fs.nextInt();
        n = fs.nextInt();
        m = fs.nextInt();
        x = fs.nextInt();
        for(int i = 0; i <= 20; i++) {
            getOn[1] = a;
            getOff[1] = 0;
            nums[1] = a;
            getOn[2] = i;
            getOff[2] = i;
            nums[2] = a;
            for(int j = 3; j <= n - 1; j++) {
                getOn[j] = getOn[j-1] + getOn[j-2];
                getOff[j] = getOn[j-1];
                nums[j] = nums[j-1] + getOn[j] - getOff[j];
            }
            if(nums[n - 1] == m) {
                System.out.println(nums[x]);
                return;
            }
        }
    }

    public static class FastScanner {
        StringTokenizer st;
        BufferedReader br;

        public void eat(String s) {
            st = new StringTokenizer(s);
        }

        public FastScanner() {
            br = new BufferedReader(new InputStreamReader(System.in));
            eat("");
        }

        public String nextLine() {
            try {
                return br.readLine();
            } catch (Exception e) {
                // TODO: handle exception
            }
            return null;
        }

        public boolean hasNext() {
            while(!st.hasMoreTokens()) {
                String s = nextLine();
                if(s == null) {
                    return false;
                }
                eat(s);
            }
            return true;
        }

        public String nextToken() {
            hasNext();
            return st.nextToken();
        }

        public int nextInt() {
            return Integer.valueOf(nextToken());
        }
    }
}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
제목은 다음과 같습니다.

제목 설명


기차는 시발역(11정거장이라고 함)에서 출발해 시발역에서 타는 사람이 aa인 다음에 22정거장에 도착하면 22정거장에서 사람이 오르고 내리지만 오르고 내리는 사람이 같기 때문에 22정거장에서 출발할 때(즉 33정거장에 도착하기 전) 차에 탄 사람은 aa인으로 유지된다.33번부터 (33번 정류장 포함)에서 승하차하는 인원수는 일정한 규칙이 있다. 승차하는 인원수는 모두 앞의 두 정거장의 승차인원의 합이고 하차인원은 지난번 정거장의 승차인원과 같으며 종착역의 앞정거장(n-1n-1정거장)까지 모두 이 규칙을 만족시킨다.현재 제시된 조건은 모두 NN 정거장이 있고 시발역에서 탑승하는 인원은 aa이며 마지막 정거장에서 내리는 인원은 mm(전체 하차)이다.xx역이 출발할 때 차에 탄 사람의 수가 얼마나 됩니까?

입력 형식


aa(≤20), nn(≤20), mm(≤2000), xx(≤20),

출력 형식


xx역에서 출발할 때 차에 탄 사람의 수.
 
정말 멋지다!!!
댓글 잊지 마세요. 닭 너무 예뻐요!!!

좋은 웹페이지 즐겨찾기