蓝桥杯--分巧克力

非常容易理解,目前还不知道是否正确,,  见谅哦

大体意思就是,用宽和长同时除以 边长,然后用结果相乘,然后相加,如果超过等于K 个人, 然后-1就是最大的


#include<stdio.h> 
int main()//应该对吧。。。 
{
    int s = 0;
    int n,i,j,k,l,p,o,g;
    int a[100010][2];//两列存储数组 
    scanf("%d%d",&n,&k);//n,k 
    for(i = 0; i < n; i++)//输入
    {
        scanf("%d%d",&a[i][0],&a[i][1]);
    }
    for(j = 1;;j++)//从每个人一个开始 
    {
        s = 0;
        for(i = 0;i < n;i++)
        {
            g = a[i][0] / j;//计算行有几个 j 列 
            o = a[i][1] / j;//计算列有几个 j  
            l = g * o;//一共有多少个 
            s += l;//加 
        }
        if(s < k)//如果 宽度为n的正方形大小,只有s个,没有超过k个人数 
        {            //则说明最大的就是 j  - 1; 
            printf("%d",j - 1);
            return 0;
        }
    }
    
}

//目前就这水平

猜你喜欢

转载自blog.csdn.net/weixin_42295018/article/details/88326919