Submission details
Task:Driving
Sender:PILIPOJAT!!
Submission time:2016-10-04 18:41:23 +0300
Language:Java
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.10 sdetails
#2ACCEPTED0.11 sdetails
#3ACCEPTED0.09 sdetails
#4ACCEPTED0.14 sdetails
#5ACCEPTED0.29 sdetails
#6ACCEPTED0.36 sdetails
#7ACCEPTED0.12 sdetails
#8ACCEPTED0.14 sdetails
#9ACCEPTED0.15 sdetails
#10ACCEPTED0.17 sdetails
#11ACCEPTED0.14 sdetails
#12ACCEPTED0.16 sdetails
#13ACCEPTED0.17 sdetails

Code

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
//package cses;

import java.io.*;
import java.util.*;

/**
 *
 * @author eamiller
 */

public class Cses {
    
    public static void main(String[] args) {
        IO io = new IO();
        int n = io.nextInt();
        int p = io.nextInt();
        
        ArrayList<Integer> etaisyydet = new ArrayList<>();
        for(int i = 0; i < n; i++){
            etaisyydet.add(io.nextInt());
        }
        Collections.sort(etaisyydet);
        
        int isoinKusio = 0;
        int isoimmanKusionAiheuttaja = 0;
        int autojaValissa = 0;
        
        for(int e : etaisyydet){
            int kusio = p * (autojaValissa + 1) - e;
            autojaValissa++;
            if(kusio > isoinKusio){
                isoinKusio = kusio;
                isoimmanKusionAiheuttaja = e;
            }
        }
        
        int x = isoinKusio + etaisyydet.get(0);
        
        System.out.println(x);
   }
    

    
    
    public static class IO extends PrintWriter {
	private InputStreamReader r;
	private static final int BUFSIZE = 1 << 15;
	private char[] buf;
	private int bufc;
	private int bufi;
	private StringBuilder sb;
	
	public IO() {
		super(new BufferedOutputStream(System.out));
		r = new InputStreamReader(System.in);
		
		buf = new char[BUFSIZE];
		bufc = 0;
		bufi = 0;
		sb = new StringBuilder();
	}
	
	private void fillBuf() throws IOException {
		bufi = 0;
		bufc = 0;
		while(bufc == 0) {
			bufc = r.read(buf, 0, BUFSIZE);
			if(bufc == -1) {
				bufc = 0;
				return;
			}
		}
	}
	
	private boolean pumpBuf() throws IOException {
		if(bufi == bufc) {
			fillBuf();
		}
		return bufc != 0;
	}
	
	private boolean isDelimiter(char c) {
		return c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\f';
	}
	
	private void eatDelimiters() throws IOException {
		while(true) {
			if(bufi == bufc) {
				fillBuf();
				if(bufc == 0) throw new RuntimeException("IO: Out of input.");
			}
			
			if(!isDelimiter(buf[bufi])) break;
			++bufi;
		}
	}
	
	public String next() {
		try {
			sb.setLength(0);
			
			eatDelimiters();
			int start = bufi;
			
			while(true) {
				if(bufi == bufc) {
					sb.append(buf, start, bufi - start);
					fillBuf();
					start = 0;
					if(bufc == 0) break;
				}
				
				if(isDelimiter(buf[bufi])) break;
				++bufi;
			}
			
			sb.append(buf, start, bufi - start);
			
			return sb.toString();
		} catch(IOException e) {
			throw new RuntimeException("IO.next: Caught IOException.");
		}
	}
	
	public int nextInt() {
		try {
			int ret = 0;
			
			eatDelimiters();
			
			boolean positive = true;
			if(buf[bufi] == '-') {
				++bufi;
				if(!pumpBuf()) throw new RuntimeException("IO.nextInt: Invalid int.");
				positive = false;
			}
			
			boolean first = true;
			while(true) {
				if(!pumpBuf()) break;
				if(isDelimiter(buf[bufi])) {
					if(first) throw new RuntimeException("IO.nextInt: Invalid int.");
					break;
				}
				first = false;
				
				if(buf[bufi] >= '0' && buf[bufi] <= '9') {
					if(ret < -214748364) throw new RuntimeException("IO.nextInt: Invalid int.");
					ret *= 10;
					ret -= (int)(buf[bufi] - '0');
					if(ret > 0) throw new RuntimeException("IO.nextInt: Invalid int.");
				} else {
					throw new RuntimeException("IO.nextInt: Invalid int.");
				}
				
				++bufi;
			}
			
			if(positive) {
				if(ret == -2147483648) throw new RuntimeException("IO.nextInt: Invalid int.");
				ret = -ret;
			}
			
			return ret;
		} catch(IOException e) {
			throw new RuntimeException("IO.nextInt: Caught IOException.");
		}
	}
	
	public long nextLong() {
		try {
			long ret = 0;
			
			eatDelimiters();
			
			boolean positive = true;
			if(buf[bufi] == '-') {
				++bufi;
				if(!pumpBuf()) throw new RuntimeException("IO.nextLong: Invalid long.");
				positive = false;
			}
			
			boolean first = true;
			while(true) {
				if(!pumpBuf()) break;
				if(isDelimiter(buf[bufi])) {
					if(first) throw new RuntimeException("IO.nextLong: Invalid long.");
					break;
				}
				first = false;
				
				if(buf[bufi] >= '0' && buf[bufi] <= '9') {
					if(ret < -922337203685477580L) throw new RuntimeException("IO.nextLong: Invalid long.");
					ret *= 10;
					ret -= (long)(buf[bufi] - '0');
					if(ret > 0) throw new RuntimeException("IO.nextLong: Invalid long.");
				} else {
					throw new RuntimeException("IO.nextLong: Invalid long.");
				}
				
				++bufi;
			}
			
			if(positive) {
				if(ret == -9223372036854775808L) throw new RuntimeException("IO.nextLong: Invalid long.");
				ret = -ret;
			}
			
			return ret;
		} catch(IOException e) {
			throw new RuntimeException("IO.nextLong: Caught IOException.");
		}
	}
	
	public double nextDouble() {
		return Double.parseDouble(next());
	}
}

    
}

Test details

Test 1

Verdict: ACCEPTED

input
10 1
1 8 2 3 6 4 7 10 9 5

correct output
1

user output
1

Test 2

Verdict: ACCEPTED

input
10 10
1 8 2 3 6 4 7 10 9 5

correct output
91

user output
91

Test 3

Verdict: ACCEPTED

input
10 10
61 62 26 88 60 34 74 37 52 17

correct output
35

user output
35

Test 4

Verdict: ACCEPTED

input
1000 2
1361 1148 1094 556 688 414 132...

correct output
13

user output
13

Test 5

Verdict: ACCEPTED

input
100000 1
41361 23804 58360 55511 98268 ...

correct output
1

user output
1

Test 6

Verdict: ACCEPTED

input
100000 10
741361 507734 549062 120354 84...

correct output
1492

user output
1492

Test 7

Verdict: ACCEPTED

input
500 1
361 117 20 304 76 399 424 480 ...

correct output
1

user output
1

Test 8

Verdict: ACCEPTED

input
500 3
361 580 180 399 524 1219 198 8...

correct output
25

user output
25

Test 9

Verdict: ACCEPTED

input
500 7
1861 1239 1868 1504 2196 1524 ...

correct output
127

user output
127

Test 10

Verdict: ACCEPTED

input
10000 7
61361 41456 32788 32254 1740 5...

correct output
330

user output
330

Test 11

Verdict: ACCEPTED

input
10000 2
1361 15228 19688 11793 17336 7...

correct output
60

user output
60

Test 12

Verdict: ACCEPTED

input
10000 10
41361 23804 58360 55511 98268 ...

correct output
1118

user output
1118

Test 13

Verdict: ACCEPTED

input
10000 1
1361 4517 1360 7198 1272 3059 ...

correct output
1

user output
1