Submission #1232567


Source Code Expand

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.NoSuchElementException;

public class Main {

	int N;
	long A,B;
	int[] X;

	public void solve() {
		N = nextInt();
		A = nextInt();
		B = nextInt();

		X = new int[N];
		for(int i = 0;i < N;i++){
			X[i] = nextInt();
		}

		long[] memo = new long[N];
		Arrays.fill(memo,Long.MAX_VALUE);
		memo[0] = 0;

		for(int i = 1;i < N;i++){

			if((X[i]-X[i-1])*A < B){
				memo[i] = Math.min(memo[i], (X[i]-X[i-1])*A+memo[i-1]);
			}else{
				memo[i] = Math.min(memo[i], B+memo[i-1]);
			}
		}
		out.println(memo[N-1]);
	}

	public static void main(String[] args) {
		out.flush();
		new Main().solve();
		out.close();
	}

	/* Input */
	private static final InputStream in = System.in;
	private static final PrintWriter out = new PrintWriter(System.out);
	private final byte[] buffer = new byte[2048];
	private int p = 0;
	private int buflen = 0;

	private boolean hasNextByte() {
		if (p < buflen)
			return true;
		p = 0;
		try {
			buflen = in.read(buffer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (buflen <= 0)
			return false;
		return true;
	}

	public boolean hasNext() {
		while (hasNextByte() && !isPrint(buffer[p])) {
			p++;
		}
		return hasNextByte();
	}

	private boolean isPrint(int ch) {
		if (ch >= '!' && ch <= '~')
			return true;
		return false;
	}

	private int nextByte() {
		if (!hasNextByte())
			return -1;
		return buffer[p++];
	}

	public String next() {
		if (!hasNext())
			throw new NoSuchElementException();
		StringBuilder sb = new StringBuilder();
		int b = -1;
		while (isPrint((b = nextByte()))) {
			sb.appendCodePoint(b);
		}
		return sb.toString();
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}

	public double nextDouble() {
		return Double.parseDouble(next());
	}
}

Submission Info

Submission Time
Task D - Walk and Teleport
User tookunn
Language Java8 (OpenJDK 1.8.0)
Score 500
Code Size 2030 Byte
Status AC
Exec Time 149 ms
Memory 38536 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 15
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_balancedmax_01.txt, subtask_1_balancedmax_02.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_min_01.txt, subtask_1_onlya_01.txt, subtask_1_onlyamax_01.txt, subtask_1_onlyb_01.txt, subtask_1_onlybmax_01.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt
Case Name Status Exec Time Memory
sample_01.txt AC 68 ms 21076 KB
sample_02.txt AC 68 ms 21076 KB
sample_03.txt AC 67 ms 19028 KB
subtask_1_balancedmax_01.txt AC 142 ms 36872 KB
subtask_1_balancedmax_02.txt AC 141 ms 37000 KB
subtask_1_max_01.txt AC 149 ms 34564 KB
subtask_1_max_02.txt AC 140 ms 33020 KB
subtask_1_min_01.txt AC 69 ms 16852 KB
subtask_1_onlya_01.txt AC 130 ms 27532 KB
subtask_1_onlyamax_01.txt AC 142 ms 38536 KB
subtask_1_onlyb_01.txt AC 116 ms 26764 KB
subtask_1_onlybmax_01.txt AC 140 ms 35208 KB
subtask_1_rand_01.txt AC 133 ms 30984 KB
subtask_1_rand_02.txt AC 136 ms 35080 KB
subtask_1_rand_03.txt AC 126 ms 25104 KB