0分求调
查看原帖
0分求调
1014288
lixinran2012楼主2024/4/7 09:53

为什么答案是

错的?

#include<bits/stdc++.h>
using namespace std;
int n,k,h[100000],w[100000],sum,ans=100000;
int a(int hi,int wi,int i,int b){
    if(hi>i&&wi>i){
        b+=(hi/i%i)*(wi/i%i);
        return b;
    }else{
        return 0;
    }
}
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>h[i]>>w[i];
        sum+=h[i]*w[i];
    }
    sum=sum/k;
    for(int i=1;i<=sum;i++){
        int b=0;
        for(int j=1;j<=sum;j++){
        	int hi=h[i],wi=w[i];
            b+=a(hi,wi,i,b);
        }
        if(b<k){
            break;
        }
        cout<<"b="<<b<<endl;
        ans=min(ans,b);
    }
    cout<<ans;
	return 0;
}
2024/4/7 09:53
加载中...