题目描述
 有一根粗细均匀长度为  L  的木棍,先用红颜色刻度线将它  m  等分,再用蓝色刻度线将 其 n  等分( m>n ),然后按所有刻度线将该木棍锯成小段,计算并输出长度最长的木棍的长度和根数。  
 
输入格式
 文件中仅有一行,包含三个正整数  L , m  和  n ,两两之间用一个空格分隔。  
 
输出格式
 文件包含两个正整数  a  和  k ,分别表示最长木棍的长度和根数。(为了简化题目的难度, 所有的测试数据中 m  和  n  一定是  L  的约数)。两数间用一个空格分隔。  
 
样例输入
12 6 4
样例输出
2 4
提示
参考代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;int a[100005], hs[100005]; 
bool vis[100005] = {false};int main()
{int t = 0, l, n, m, nt, mt;cin>>l>>n>>m;do{t += l / n;vis[t] = true;} while(t <= l);t = 0;do{t += l / m;vis[t] = true;} while(t <= l);int max_cnt = 0, cnt = 0;for(int i = 1; i <= l; i++){if(!vis[i])cnt++;else{cnt++;hs[cnt]++;cnt = 0;}}for(int i = 100005; i >= 1; i--){if(hs[i] > 0){cout<<i<<" "<<hs[i];return 0;}}return 0;
}