T137233 魔术增幅

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

再设$M=\sum\limits_{i=1}^N a_i=g\times \sum\limits_{i=1}^N t_i$。

因为$t_i$都是正整数,所以$\sum\limits_{i=1}^n t_i \ge N$,所以$\dfrac{M}{g}\ge N$,也即$g\le \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

 

posted @ 2020-06-24 14:45  汉谡  阅读(105)  评论(0编辑  收藏  举报