diff --git a/src/Problem10844.java b/src/Problem10844.java new file mode 100644 index 0000000..ee713c3 --- /dev/null +++ b/src/Problem10844.java @@ -0,0 +1,38 @@ +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; + +public class Problem10844 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + int n = Integer.parseInt(br.readLine()); + long MOD = 1_000_000_000; + + long[][] dp = new long[n+1][10]; + + for(int i=1;i<=9;i++) dp[1][i] = 1; + + for(int i=2;i<=n;i++){ + dp[i][0] = dp[i-1][1]; + dp[i][9] = dp[i-1][8]; + + for(int j=1;j<=8;j++){ + dp[i][j] = (dp[i-1][j-1] + dp[i-1][j+1]) % MOD; + } + } + + long ans = 0; + for(int i=0;i<=9;i++){ + ans = (ans + dp[n][i]) % MOD; + } + + bw.write(String.valueOf(ans)); + bw.flush(); + bw.close(); + + } +} \ No newline at end of file diff --git a/src/Problem15486.java b/src/Problem15486.java new file mode 100644 index 0000000..a26ac09 --- /dev/null +++ b/src/Problem15486.java @@ -0,0 +1,39 @@ +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.util.StringTokenizer; + +public class Problem15486 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + int n = Integer.parseInt(br.readLine()); + int[] t = new int[n]; + int[] p = new int[n]; + int[] dp = new int[n + 1]; + + for (int i = 0; i < n; i++) { + StringTokenizer st = new StringTokenizer(br.readLine()); + t[i] = Integer.parseInt(st.nextToken()); + p[i] = Integer.parseInt(st.nextToken()); + } + + dp[n] = 0; + + for (int i = n-1; i > -1; i--) { + if (t[i] + i > n) { + dp[i] = dp[i + 1]; + } + else { + dp[i] = Math.max(dp[i + t[i]] + p[i], dp[i + 1]); + } + } + + bw.write(String.valueOf(dp[0])); + bw.flush(); + bw.close(); + } +} \ No newline at end of file diff --git a/src/Problem2240.java b/src/Problem2240.java new file mode 100644 index 0000000..99dd3e2 --- /dev/null +++ b/src/Problem2240.java @@ -0,0 +1,47 @@ +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.BufferedWriter; +import java.io.BufferedReader; +import java.io.IOException; +import java.util.StringTokenizer; + +public class Problem2240 { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + StringTokenizer st = new StringTokenizer(br.readLine()); + int t = Integer.parseInt(st.nextToken()); + int w = Integer.parseInt(st.nextToken()); + int max = 0; + + int[][][] dp = new int [w + 1][t + 1][2]; + int[] arr = new int[t + 1]; + arr[0] = 1; + dp[0][0][0] = 0; + + for (int i = 1; i <= t; i++) { + arr[i] = Integer.parseInt(br.readLine()); + dp[0][i][0] = 0; + dp[0][i][1] = 0; + } + + for (int i = 1; i < t + 1; i++) { + dp[0][i][0] = dp[0][i - 1][0] + (arr[i] == 1 ? 1 : 0); + + for(int j = 1; j < Math.min(i + 1, w + 1) ; j++ ) { + for(int k = 0; k < 2; k++) { + dp[j][i][k] = Math.max(dp[j][i - 1][k], dp[j - 1][i - 1][1 - k]) + (k + 1 == arr[i] ? 1 : 0); + + if (max < dp[j][i][k]) { + max = dp[j][i][k]; + } + } + } + } + + bw.write(String.valueOf(max)); + bw.flush(); + bw.close(); + } +} \ No newline at end of file diff --git a/src/Problem2748.java b/src/Problem2748.java new file mode 100644 index 0000000..7ec770e --- /dev/null +++ b/src/Problem2748.java @@ -0,0 +1,35 @@ +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.IOException; + +public class Problem2748 { + public static void main(String[] args) throws IOException{ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + + int n = Integer.parseInt(br.readLine()); + + long dp1 = 0; + long dp2 = 1; + + if (n == 0) { + bw.write(String.valueOf(dp1)); + } + else if (n == 1) { + bw.write(String.valueOf(dp2)); + } + else { + for (int i = 2; i <= n; i++) { + long temp = dp2; + dp2 = dp1 + dp2; + dp1 = temp; + } + bw.write(String.valueOf(dp2)); + } + + bw.flush(); + bw.close(); + } +} \ No newline at end of file