L1-095 分寝室

题目 L1-095 分寝室

image-9c079c95

思路分析

代码实现

#include<bits/stdc++.h>

using namespace std;

#define endl '\n'

using ll = long long;

using ull = unsigned long long;

using PII = pair<int,int>;

using Pll = pair<ll,ll>;

int dx[4]= {-1,0,1,0},dy[4]= {0,1,0,-1};

const int inf = 0x3f3f3f3f;

int main() {

	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

	int n0,n1,n;cin>>n0>>n1>>n;

	int ansF,ansM;

	int mincj=inf;

	bool havefind=false;

	for(int l=1;l<=n-1;l++){//枚举女生宿舍多少间 最少1间 最多n-1间

		int r=n-l;

		if(n0%l!=0 || n1%r!=0)	continue;

		int curF=n0/l;

		int curM=n1/r;

		if(curF==1 || curM==1)	continue; // 不允许一人一间 小心遗漏条件

		int curcj=abs(curF-curM);

		if(curcj<mincj){

			mincj=curcj;

			ansF=l;

			ansM=r;

			havefind=true;

		}

	}

	if(havefind){

		cout<<ansF<<" "<<ansM;

	}else{

		cout<<"No Solution";

	}

	return 0;

}

同类题型

视频讲解


⬅️ L1-094 剪切粘贴 🏠 00-天梯赛 ➡️ L1-096 谁管谁叫爹