중국인의 나머지 정리 코드 빼고 나머지 알고리즘 부분임. 자꾸 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;
}
flush?
endl
아니 '\n'은 안되고 endl써야된다는거 어디나와있음?
인터랙티브 문제는 플러시를 항상 해줘야 하는데 endl은 그 플러시가 포함되어 있음
\n은 버퍼 flush를 안하니까 더 빨라서 평소에 쓰는거고
interactive는 endl 써야됨
아 배열 A출력하고 줄바꿈 안해줘서 TLE났네 ㅈ같다진짜 interactive