2769:Reduced ID Numbers

keyword

BruteForce C++

概要

n(<10^6)以下の互いに異なるG(<300)個の数列が与えられる。このとき、mod Mで考えても全ての元が異なるような最小のMを求める問題。
いもす先生にうまい解き方が無いか相談したら全探索でいけるんじゃないか、とのこと。確かにMを大きくするのは難しいように思われる。

int main(){
    int rept = readint();
    while(rept--){
        int n, i, j;
        n = readint();
        REP(i,n) ns[i] = readint();
        for(i=1;;i++){
            vector<bool> checked(i,false);
            REP(j,n){
                if(checked[ns[j]%i]) break;
                else checked[ns[j]%i] = true;
            }
            if(j==n) break;
        }
        printf("%d\n",i);
    }

    return 0;
}