4.3w+
社区成员
import java.util.Scanner;
public class Main{
static final int N = (int) (2e4 + 5);
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int v = sc.nextInt();
int n = sc.nextInt();
int[] a = new int[n + 1];
for (int i = 1; i <= n; i++) {
a[i] = sc.nextInt();
}
int[] dp = new int[N];
for (int i = 1; i <= n; i++) {
for (int j = v; j >= a[i]; j--) {
dp[j] = Math.max(dp[j], dp[j - a[i]] + a[i]);
}
}
System.out.println(v - dp[v]);
}
}
import java.util.Scanner;
public class Main{
static int n, a[];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int v = sc.nextInt();
n = sc.nextInt();
a = new int[n + 1];
for (int i = 1; i <= n; i++) {
a[i] = sc.nextInt();
}
dfs(v, 1);
System.out.println(min);
}
static int min = 9999999;
static void dfs(int v, int sta) {
if (v < 0) {
return;
} else {
min = Math.min(min, v);
}
for (int i = sta; i <= n; i++) {
dfs(v - a[i], i + 1);
}
}
}
import java.io.*;
public class Main{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
static int n, k, a[], b[];
public static void main(String[] args) throws IOException {
String[] s = br.readLine().split(" ");
n = Integer.parseInt(s[0]);
k = Integer.parseInt(s[1]);
a = new int[n + 1];
b = new int[n + 1];
for (int i = 1; i <= n; i++) {
s = br.readLine().split(" ");
a[i] = Integer.parseInt(s[0]);
b[i] = Integer.parseInt(s[1]);
}
int l = 1, r = (int) (1e5 + 5);
while (l < r) {
int mid = l + r + 1 >> 1;
if (check(mid)) {
l = mid;
} else {
r = mid - 1;
}
}
out.println(l);
out.flush();
br.close();
out.close();
}
static boolean check(int mid) {
long ans = 0;
for (int i = 1; i <= n; i++) {
ans += (a[i] / mid) * (b[i] / mid);
}
return ans >= k;
}
}
import java.io.*;
import java.util.Arrays;
public class Main{
static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
static int n, c;
static long[] a;
public static void main(String[] args) throws IOException {
n = sc.nextInt();
c = sc.nextInt();
a = new long[n + 1];
for (int i = 1; i <= n; i++) {
a[i] = sc.nextLong();
}
Arrays.sort(a);
int l = 1, r = (int) (1e9 + 5);
while (l < r) {
int mid = l + r + 1 >> 1;
if (check(mid)) {
l = mid;
} else {
r = mid - 1;
}
}
out.println(l);
out.flush();
out.close();
}
static boolean check(int mid) {
int ans = 1;
for (int i = 2, j = 1; i <= n; i++) {
if (a[i] - a[j] >= mid) {
j = i;
ans++;
}
}
return ans >= c;
}
static class sc {
static final StreamTokenizer sca = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static int nextInt() throws IOException {
sca.nextToken();
return (int) sca.nval;
}
static long nextLong() throws IOException {
sca.nextToken();
return (long) sca.nval;
}
}
}
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
static int n, k, a[];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
k = sc.nextInt();
a = new int[n + 1];
for (int i = 1; i <= n; i++) {
a[i] = sc.nextInt();
}
dfs(1, 0, 0);
System.out.println(ans);
}
static int ans = 0;
static void dfs(int sta, int m, int sum) {
if (m == k) {
if (new BigInteger(sum + "").isProbablePrime(100)) {
ans++;
}
return;
}
for (int i = sta; i <= n; i++) {
dfs(i + 1, m + 1, sum + a[i]);
}
}
}