BOJ 25922 - 비밀의 레시피

image.png

어떤 이유로 쿼리를 $N+1$ 번을 허용하는 건지 모르겠지만 이것도 낚시같다.

그냥 $10^9+7$ 같은 소수에 대해 그것이 진법인 수로 나타낼 수 있고,

계속 $10^9 + 7$ 을 나눠주면서 나머지가 결국 다항식의 계수가 된다.

큰 수 연산이 필요해보인다.

void solve() {
   int n;
   cin >> n;
   //cout << mod * mod + mod * 2 + 3;
   vector<bigint> ans(n + 1, bigint(0));

   cout << "? " << mod << endl;
   bigint get;
   cin >> get;

   for (int i = n; i >= 0; i--) {
      ans[i] = get % mod;
      get /= mod;
   }

   cout << "! ";
   for (int i = n; i >= 0; i--) cout << ans[i] << ' ';
}

Tags:

Categories:

Updated:

Comments