UOJ Logo Universal Online Judge

UOJ

#1214. 小鸡

Statistics

出题人不会配置,放一下grader.cpp大家自己复制到代码里再提交

#include<bits/stdc++.h>

void solve(int n,int m,std::vector<std::vector<char> > &Matrix);

const long long Hashmod1=998244353;
const long long HashBase1=32687;
const long long Hashmod2=1e9+7;
const long long HashBase2=131;
inline long long Hasher1(int N,int M,std::vector<std::vector<char> >Matrix)
{
    long long re=0;
    for(int i=1;i<=N;i+=1)
        for(int j=1;j<=M;j+=1)
            re=(re*HashBase1%Hashmod1+Matrix[i][j])%Hashmod1;
    return re;
}
inline long long Hasher2(int N,int M,std::vector<std::vector<char> >Matrix)
{
    long long re=0;
    for(int i=1;i<=N;i+=1)
        for(int j=1;j<=M;j+=1)
            re=(re*HashBase2%Hashmod2+Matrix[i][j])%Hashmod2;
    return re;
}

const std::string input_secret="HOHDNHRNdeqPd";
const std::string output_secret="nPzsIlSrZvx";
int main()
{
//    freopen("chicken.in","r",stdin);
//    freopen("chichen.out","w",stdout);
    std::string input;
    std::cin>>input;
    if(input!=input_secret)
    {
        puts("SV");
        exit(0);
    }
    int Time;
    assert(1==scanf("%d",&Time));
    int N, M;
    assert(2 == scanf("%d %d", &N, &M));
    std::vector<std::vector<char> > Mat;
    std::vector<char>Ori;
    for(int i=0;i<=M;i+=1)Ori.emplace_back('g');
    for(int i=0;i<=N;i+=1)Mat.emplace_back(Ori);
    std::cout<<output_secret<<std::endl;
    if(1ll*Time*N*M<=500000)
    {
        while(Time--)
        {
            solve(N,M,Mat);
            for(int i=1;i<=N;i+=1,puts(""))
                for(int j=1;j<=M;j+=1)
                    putchar(Mat[i][j]);
            puts("");
        }
    }
    else
    {
        while(Time--)
        {
            solve(N,M,Mat);
            printf("%lld %lld\n",Hasher1(N,M,Mat),Hasher2(N,M,Mat));
        }
    }
    return 0;
}