이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//package week4;
import java.io.*;
import java.util.*;
class teams {
public static void main(String[] args) throws IOException {
teams obj = new teams();
obj.doStuff();
}
int process(int pos, int val, int max) {
if (val == 1) return 0;
if (pos == vals.length-1) return val-1;
int[][] grid = new int[vals.length-pos-1][vals.length-pos+1];
grid[0][1] = val-1;
grid[0][0] = max*(val-1)%1000007;
grid[0][0] = (grid[0][0]+grid[0][1])%1000007;
for (int i = 1; i < grid.length; i++) {
for (int j = i+1; j > 0; j--) {
grid[i][j] = grid[i-1][j-1];
grid[i][j] += grid[i][j+1];
grid[i][j] %= 1000007;
}
grid[i][0] = grid[i-1][0];
grid[i][0] += grid[i][1];
grid[i][0] %= 1000007;
}
return grid[grid.length-1][0];
}
int[][] grid; // [pos] [number of valid ways if at cur pos and max val is #]
int[] vals;
private void doStuff() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int len = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
vals = new int[len];
for (int i = 0; i < vals.length; i++) {
vals[i] = Integer.parseInt(st.nextToken());
}
br.close();
grid = new int[vals.length][vals.length+1];
Arrays.fill(grid[grid.length-1], 1);
grid[grid.length-1][0] = 0;
for (int i = 1; i < grid[0].length; i++) {
grid[grid.length-1][i] += grid[grid.length-1][i-1];
}
for (int i = grid.length-2; i >= 0; i--) {
for (int j = 1; j <= i+1; j++) {
grid[i][j] = (grid[i+1][j+1]+grid[i][j-1])%1000007;
}
}
int ans = 1;
int max = 1;
int max2 = 1;
for (int i = 0; i < vals.length; i++) {
if (vals[i] > max) {
max2 = max;
max = vals[i];
} else if (vals[i] > max2) max2 = vals[i];
ans += process(i, vals[i], max2);
ans %= 1000007;
}
System.out.println(ans);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |