锯木棍

有一根粗细均匀长度为 LL 的木棍,先用红颜色刻度线将它 mm 等分,再用蓝色刻度线将其 nn 等分(m>nm>n),然后按所有刻度线将该木棍锯成小段,计算并输出长度最长的木棍的长度和棍数。

输入格式

输入仅有一行,包含三个正整数 LLmm 和 nn,两两之间用一个空格分隔。(1\leq L\leq 1000001L100000

输出格式

输出包含两个正整数 aa 和 kk,分别表示最长木棍的长度和根数。(为了简化题目的难度,所有的测试数据中 mm 和 nn 一定是 L

L 的约数)。两数之间用一个空格分隔

#include
#include
#include
using namespace std;
int main(){
    int l;
    cin>>l;
    int m,n;
    cin>>m>>n;
    bool cut[l+1];//锯后
    int length[l+1];//锯后长度
    for(int i=0;i<=l;i++){
        cut[i]=false;
        length[i]=0;
    }
    for(int i=0;i<=l;i+=l/m){
        cut[i]=true;
    }
    for(int i=0;i<=l;i+=l/n){
        cut[i]=true;
    }
    int left=0;
     //切割总有个左右吧;
    for(int right=1;right<=l;right++){
        if(cut[right]==true){
            length[right-left]++;
            left=right;
        }
    }
    int max=0;
    for(int i=1;i<=l;i++){
        if(length[i]>0){
            max=i;
        }
    }
    cout<     return 0;
}

你可能感兴趣的:(计蒜客)