結果
問題 | No.1409 Simple Math in yukicoder |
ユーザー |
![]() |
提出日時 | 2021-02-26 23:00:11 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,586 bytes |
コンパイル時間 | 2,003 ms |
コンパイル使用メモリ | 199,080 KB |
最終ジャッジ日時 | 2025-01-19 06:38:00 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 5 TLE * 53 |
ソースコード
#include <bits/stdc++.h>using namespace std;vector<int> fact(int p) {vector<int> res;for (int i = 2; i * i <= p; ++i) {res.push_back(i);while (p % i == 0) p /= i;}if (p > 1) res.push_back(p);return res;}long long modpow(long long b, long long x, long long mod) {long long res = 1;while (x) {if (x & 1) (res *= b) %= mod;(b *= b) %= mod;x >>= 1;}return res;}int x, v;vector<int> res;int calc(int p, vector<int>& vec) {int res = x * v, pr = x * v + 1;for (auto x : vec) {while (res % x == 0 && modpow(p, res / x, pr) == 1) res /= x;}return res;}vector<vector<int>> memo;void dfs(int now = 0, int par = 0);int main() {int t;cin >> t;while (t--) {cin >> v >> x;vector<int> res;int pr = v * x + 1;for (int i = 1; i <= x * v; ++i) {long long p = 1;bool ch = 0;for (int j = 0; j < x; ++j)if (((p *= i) %= pr) == 1) {ch = x % (j + 1) == 0;break;}if (ch) res.push_back(i);}for (int i = 0; i < x; ++i) cout << res[i] << " \n"[i == x - 1];}return 0;}void dfs(int now, int par) {if (now == x) {vector<long long> vec(x, 1);for (int i = 0; i < x; ++i) {long long sum = 0;for (int j = 0; j < x; ++j) sum += (vec[j] *= res[j]);if (sum % (v * x + 1) != (i == x - 1 ? x : 0)) return;}for (auto p : res) cout << p << " ";cout << endl;return;}int xv = x * v;for (int i = par + 1; i <= xv; ++i) {res[now] = i;dfs(now + 1, i);}}