結果
問題 |
No.3115 One Power One Kill
|
ユーザー |
![]() |
提出日時 | 2025-04-20 15:17:26 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 56 ms / 2,000 ms |
コード長 | 3,621 bytes |
コンパイル時間 | 2,483 ms |
コンパイル使用メモリ | 206,164 KB |
実行使用メモリ | 25,996 KB |
平均クエリ数 | 2.00 |
最終ジャッジ日時 | 2025-04-20 15:17:31 |
合計ジャッジ時間 | 5,080 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 20 |
ソースコード
#include <algorithm> #include <array> #include <bitset> #include <cassert> #include <cctype> #include <chrono> #include <climits> #include <cmath> #include <cstdint> #include <cstdio> #include <deque> #include <fstream> #include <functional> #include <iomanip> #include <iostream> #include <iterator> #include <limits> #include <map> #include <numeric> #include <queue> #include <regex> #include <set> #include <sstream> #include <stack> #include <string> #include <tuple> #include <unordered_map> #include <unordered_set> #include <utility> #include <vector> // #include <atcoder/dsu> #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rep1(i, n) for (int i = 1; i <= (int)(n); i++) #define all(a) a.begin(), a.end() using namespace std; template <class T> inline bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } template <class T> inline bool chmax(T &a, T b) { if (a < b) { a = b; return true; } return false; } template <class T1, class T2> std::ostream &operator<<(std::ostream &out, const pair<T1, T2> &A) { cout << "{" << A.first << "," << A.second << "}"; return out; } template <class T1, class T2> std::ostream &operator<<(std::ostream &out, const map<T1, T2> &M) { for (const auto &A : M) { cout << "{" << A.first << "," << A.second << "}"; } return out; } template <class T1> std::ostream &operator<<(std::ostream &out, const set<T1> &M) { cout << "{"; for (const auto &A : M) { cout << A << ", "; } cout << "}" << endl; return out; } template <class T1> std::ostream &operator<<(std::ostream &out, const multiset<T1> &M) { cout << "{"; for (const auto &A : M) { cout << A << ", "; } cout << "}" << endl; return out; } template <class T> std::ostream &operator<<(std::ostream &out, const vector<T> &A) { for (const T &a : A) { cout << a << " "; } return out; } void print() { cout << endl; } template <typename Head, typename... Tail> void print(Head H, Tail... T) { cout << H << " "; print(T...); } template <class T> std::istream &operator>>(std::istream &in, vector<T> &A) { for (T &a : A) { std::cin >> a; } return in; } using ll = long long; constexpr int INF = numeric_limits<int>::max() / 2; constexpr ll LINF = numeric_limits<ll>::max() / 2; ll modpow(ll a, ll b, ll mod) { ll res = 1; while (b > 0) { if (b & 1) { res = res * a % mod; } a = a * a % mod; b >>= 1; } return res; } void solve() { /* // 素数列挙 // 1e6までの素数を列挙 const int N = 1e6; vector<bool> is_prime(N + 1, true); is_prime[0] = is_prime[1] = false; for (int i = 2; i * i <= N; i++) { if (is_prime[i]) { for (int j = i * i; j <= N; j += i) { is_prime[j] = false; } } } // 1e6までの素数を列挙 vector<int> primes; for (int i = 2; i <= N; i++) { if (is_prime[i]) { primes.push_back(i); } } for (auto p : primes) { ll a = (p - 1) * 2; ll b = p; ll y = modpow(a, b, 1e9 + 7); ll x = b; ll k = gcd(x, y); if (k != 1) { cout << p << " " << k << endl; } for (int x = 100; x <= 100000; x++) { ll k = gcd(x, y); ll x1 = modpow(x, a, b); if (x1 != 1) cout << x1 << " " << k << endl; } } */ ll a = 198 * 2; ll b = 199; ll y = modpow(a, b, 1e9 + 7); for (int x = 100; x <= 100000; x++) { ll k = gcd(x, y); ll x1 = modpow(x, a, b); cout << x << " " << x1 << " " << k << endl; assert((x1 == 1 && k % 199 != 0) || (x1 == 0 && k % 199 == 0)); } } int main(void) { std::cin.tie(0)->sync_with_stdio(0); ll a = 198 * 2; ll b = 199; cout << a << " " << b << endl; ll k; cin >> k; cout << (k % 199 != 0) << endl; return 0; }