중국인의 나머지 정리 코드 빼고 나머지 알고리즘 부분임. 자꾸 TLE나는데 여기서 잘못짠거 있을까? 걍 내꺼 CRT코드가 잘못된건가?


#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

typedef pair<ll,ll> pi;

vector<int>prime = {4,9,5,7,11,13,17,19,23};

int A[155],B[155],C[155];

ll num[155],rem[150];


int main(){

int N = 0;

for(int x : prime){

int l = N+1,r = N+x;

for(int i=l; i<r; i++) A[i] = i+1,C[i] = x;

A[r] = l; C[r] = x;

N+=x;

}

cout<<N<<'\n';

for(int i=1; i<=N; i++){

cout<<A[i]<<" ";

}

cout<<'\n';

for(int i=1; i<=N; i++) cin>>B[i];

int M = 0,start = 1;

for(int x : prime){

num[M] = x;

rem[M] = B[start]-start;

M++;

start+=x;

}

pi ans = pi(rem[0],num[0]);

for(int i=1; i<M; i++){

ans = CRT(ans.first,ans.second,rem[i],num[i]);

}

cout<<ans.first;

fflush(stdout);

return 0;

}