T137233 魔术增幅

设答案为$g$,那么肯定有$gmid M$。

再设$M=sumlimits_{i=1}^N a_i=g imes sumlimits_{i=1}^N t_i$。

因为$t_i$都是正整数,所以$sumlimits_{i=1}^n t_i ge N$,所以$dfrac{M}{g}ge N$,也即$gle dfrac{M}{N}$。

于是答案就是在$[1,dfrac{M}{N}]$中,能整除$M$的最大值。

从大到小枚举即可。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define IL inline
#define RG register
using namespace std;
#define RI RG int

    int n,m;
    
int main(){
    scanf("%d%d",&n,&m);
    for(RI i=m/n;i>=1;i--)
    if(m%i==0){
        printf("%d",i);
        break;
        
    }
            
    return 0;
    
}
View Code
原文地址:https://www.cnblogs.com/Hansue/p/13187411.html