結果
| 問題 | No.1140 EXPotentiaLLL! |
| コンテスト | |
| ユーザー |
packer_jp
|
| 提出日時 | 2020-07-31 21:39:17 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 3,455 bytes |
| コンパイル時間 | 1,493 ms |
| コンパイル使用メモリ | 175,284 KB |
| 実行使用メモリ | 19,252 KB |
| 最終ジャッジ日時 | 2024-07-06 17:03:12 |
| 合計ジャッジ時間 | 2,937 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 1 |
| other | WA * 12 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, n) for (int i = 0; i < (int) (n); i++)
#define reps(i, n) for (int i = 1; i <= (int) (n); i++)
#define all(x) (x).begin(), (x).end()
#define uniq(x) (x).erase(unique(all(x)), (x).end())
#define bit(n) (1LL << (n))
#define cdiv(a, b) (((a) - 1) / (b) + 1)
#define dump(x) cerr << #x " = " << (x) << endl
using vint = vector<int>;
using vvint = vector<vint>;
using pint = pair<int, int>;
using vpint = vector<pint>;
template<typename T> using priority_queue_rev = priority_queue<T, vector<T>, greater<T>>;
constexpr double PI = 3.1415926535897932384626433832795028;
constexpr int DY[9] = {0, 1, 0, -1, 1, 1, -1, -1, 0};
constexpr int DX[9] = {1, 0, -1, 0, 1, -1, -1, 1, 0};
int gcd(int a, int b) {
while (b) { swap(a %= b, b); }
return a;
}
int lcm(int a, int b) { return a / gcd(a, b) * b; }
int sgn(int x) { return (x > 0) - (x < 0); }
template<typename T> void fin(T mes) {
cout << mes << endl;
exit(0);
}
template<typename T, typename U> bool chmax(T &a, const U &b) {
if (a < b) {
a = b;
return true;
}
return false;
}
template<typename T, typename U> bool chmin(T &a, const U &b) {
if (b < a) {
a = b;
return true;
}
return false;
}
template<typename T, typename U> ostream &operator<<(ostream &os, const pair<T, U> &rhs) {
os << "(" << rhs.first << ", " << rhs.second << ")";
return os;
}
template<typename T> ostream &operator<<(ostream &os, const vector<T> &rhs) {
os << "{";
for (auto itr = rhs.begin(); itr != rhs.end(); itr++) {
os << *itr << (next(itr) != rhs.end() ? ", " : "");
}
os << "}";
return os;
}
struct setup {
static constexpr int PREC = 20;
setup() {
cout << fixed << setprecision(PREC);
cerr << fixed << setprecision(PREC);
};
} setup;
std::vector<long long> get_divisors(long long n) {
std::vector<long long> ret;
long long i;
for (i = 1; i * i < n; i++) {
if (n % i == 0) {
ret.push_back(i);
ret.push_back(n / i);
}
}
if (i * i == n) { ret.push_back(i); }
std::sort(ret.begin(), ret.end());
return ret;
}
struct fast_io {
static constexpr int size_in = 1 << 25, size_out = 1 << 25;
char data_in[size_in], data_out[size_out], *p_in, *p_out, s[30];
fast_io() { fread(data_in, 1, size_in, stdin), p_in = data_in, p_out = data_out; }
~fast_io() { fwrite(data_out, 1, p_out - data_out, stdout); }
void putchar(char x) { *p_out++ = x; }
template<typename T> void putint(T x) {
if (x < 0) { *p_out++ = '-', x = -x; }
int i = 0;
do { s[i++] = x % 10 + '0'; } while (x /= 10);
while (i--) { *p_out++ = s[i]; }
}
template<typename T=int> T getint() {
while (!isdigit(*p_in) && *p_in != '-') { p_in++; }
bool negative = *p_in == '-';
int ret = negative ? 0 : *p_in - '0';
while (isdigit(*++p_in)) { (ret *= 10) += *p_in - '0'; };
return negative ? -ret : ret;
}
} io;
int T;
signed main() {
cin >> T;
while (T--) {
int A, P;
A = io.getint(), P = io.getint();
vint v = get_divisors(P);
if (v.size() == 2) {
io.putint(-1), io.putchar('\n');
continue;
}
if (P == 2) { io.putint(A % 2), io.putchar('\n'); }
else { io.putint(1), io.putchar('\n'); }
}
}
packer_jp