牛牛给度度熊出了一个数学题,牛牛给定数字
,希望度度熊能找到一组非负整数
满足
且
尽量小。
度度熊把这个问题交给了你,希望你能帮他解决。
#include<bits/stdc++.h>
#include <climits>
#include <cstdio>
#include<vector>
#define N 100005
#define mn INT_MIN
#define mx INT_MAX
typedef long long ll;
using namespace std;
int main() {
ll n,m,k;
scanf("%lld %lld %lld",&n,&m,&k);
ll imax=max(n,m);
ll r=min(n,m);
ll p=r;
ll l=1;
ll ans=INT_MIN;
while(l<=r)
{
ll mid =(l+r)/2;
if (mid*imax<=k)
{
ans=max(mid,ans);
l=mid+1;
}else {
r=mid-1;
}
}
ans=p-ans;
cout<<ans;
return 0;
} import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long n = in.nextLong(), m = in.nextLong(), k = in.nextLong();
// 保证 n <= m
if (n > m) {
long tmp = n;
n = m;
m = tmp;
}
// 答案
System.out.println(n - (k/m));
}
} public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long n = in.nextLong();
long m = in.nextLong();
long k = in.nextLong();
if(n <= m){
System.out.println(helper(n,m,k));
}else{
System.out.println(helper(m,n,k));
}
}
public static long helper(long n,long m,long k){
long num = k / m;
return n - num;
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long n = in.nextLong();
long m = in.nextLong();
long k = in.nextLong();
long a = 0;
long b = 0;
long min = Integer.MAX_VALUE;
for (; a < n; a++) {
b = m - k / (n - a);
if (b >= 0) {
min = a + b < min ? a + b : min;
} else {
b = 0;
min = a + b < min ? a + b : min;
break;
}
}
min = a < min ? a : min;
System.out.print(min);
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long n = in.nextLong();
long m = in.nextLong();
long k = in.nextLong();
long a = 0, b = 0;
while ((n - a) * (m - b) > k) {
if (a == n - 1) {
b++;
} else if (b == m - 1) {
a++;
} else if ((n - a - 1) * (m - b) < (n - a) * (m - b - 1)) {
a++;
} else {
b++;
}
}
System.out.println(a + b);
}
} import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long n = scan.nextLong();
long m = scan.nextLong();
long k = scan.nextLong();
long count = 0;
while (n * m > k) {
long sum = n + m;
n = Math.min(n, m);
m = sum - n;
count++;
n--;
}
System.out.println(count);
}
} class Solution { public int shuLunText(int n,int m,int k){ int min=Integer.MAX_VALUE; for(int a=0;a<=n;a++){ for(int b=0;b<=m;b++){ int s=a+b; int level=(n-a)*(m-b); if(level<=k){ min=min<s?min:s; } } } return min; } }我也不知道对错就这样吧。
package main
import (
"fmt"
)
func main() {
var n,m,k int
fmt.Scanln(&n,&m,&k)
if n > m {
n,m = m,n
}
ans := n - k / m
fmt.Println(ans)
} import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
long m = sc.nextLong();
long k = sc.nextLong();
if(n > m){
long c = m;
m = n;
n = c;
}
System.out.print(n - (k / m));
}
}