第2个点T
查看原帖
第2个点T
420102
phmaprostrate楼主2021/9/5 19:56

用的暴力的方法,曹冲养猪能过…… 所以是极限了吗?

#include<bits/stdc++.h>
#define int long long
#define R register
using namespace std;
inline long long read()
{
  long long f=1,x=0;
  char ss=getchar();
  while(ss<'0'||ss>'9'){if(ss=='-')f=-1;ss=getchar();}
  while(ss>='0'&&ss<='9'){x=x*10+ss-'0';ss=getchar();}
  return f*x;
}
inline long long gcd(long long a,long long b)
{
  if (b==0) return a;
  else return gcd(b,a%b);
}

inline void memge(long long &a1,long long &m1,long long a2,long long m2){

  if(m2>m1) swap(m1,m2),swap(a1,a2);
  int cnt = 0;
  while(a1%m2!=a2){
   a1=a1+m1;
  }

  m1 =(m2/gcd(m1,m2))*m1;
}

long long a1,m1;
int a[110],m[110];
signed main(){

  int n;
  n=read();
  for(R int i = 1;i <= n;i++) a[i] = read();
  for(R int i = 1;i <= n;i++) m[i] = read();
  long long m1= m[1];
   long long a1= a[1];
   a1%=m1; 
      for(R int i=2;i<=n;i++){
      long long a2 = a[i];long long m2 = m[i];
      a2%=m2;
      memge(a1,m1,a2,m2);
  }

  printf("%lld",(a1+m1)%m1);
  return 0;
}
2021/9/5 19:56
加载中...