Submission #2234609


Source Code Expand

import java.util.Scanner;
import java.util.TreeSet;

public class Main {
	public static void main(String[] args) {
		final Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] arr = new int[n];
		int[] rev = new int[n+1];
		for(int i = 0; i < n; i++) {
			arr[i] = sc.nextInt();
			rev[arr[i]] = i;
		}
		long count = 0;

		TreeSet<Integer> sorted = new TreeSet<>();
		sorted.add(-1);
		sorted.add(n);

		for(int i = 1; i <= n; i++) {
			int l = sorted.lower(rev[i]);
			int r = sorted.higher(rev[i]);
			count += (long)i*(rev[i] - l)*(r - rev[i]);
			sorted.add(rev[i]);
		}
		System.out.println(count);
	}
}

Submission Info

Submission Time
Task B - Minimum Sum
User naoppy
Language Java8 (OpenJDK 1.8.0)
Score 400
Code Size 652 Byte
Status AC
Exec Time 704 ms
Memory 73392 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 13
Set Name Test Cases
Sample example0, example1, example2
All corner0, corner1, corner2, corner3, example0, example1, example2, maxrand0, maxrand1, maxrand2, rand0, rand1, rand2
Case Name Status Exec Time Memory
corner0 AC 661 ms 63680 KB
corner1 AC 673 ms 67196 KB
corner2 AC 95 ms 21204 KB
corner3 AC 687 ms 65060 KB
example0 AC 94 ms 21716 KB
example1 AC 94 ms 21844 KB
example2 AC 94 ms 21844 KB
maxrand0 AC 680 ms 66092 KB
maxrand1 AC 704 ms 73392 KB
maxrand2 AC 642 ms 64564 KB
rand0 AC 109 ms 18896 KB
rand1 AC 97 ms 17104 KB
rand2 AC 101 ms 19284 KB