QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#791933 | #9738. Make It Divisible | Eqvpkbz | WA | 0ms | 3852kb | C++23 | 1.7kb | 2024-11-28 22:05:12 | 2024-11-28 22:05:21 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const ll N = 3e5 + 5;
const ll P = 998244353;
ll n, m, k;
void solve() {
cin >> n >> k;
vector<int> b(n + 2);
int mn = 1e9;
for (int i = 1; i <= n; i++) {
cin >> b[i];
mn = min(mn, b[i]);
}
// sort(b.begin() + 1, b.begin() + 1 + n);
int now = 0;
for (int i = 1; i <= n; i++) {
now = __gcd(b[i] - mn, now);
}
if (now == 0) {
cout << k << ' ' << (k + 1) * (k) / 2 << '\n';
return;
}
// cout << now << ' ';
ll sum = 0, ans = 0;
vector<int> ve;
for (ll i = 1; i * i <= now; i++) {
if (now % i == 0) {
if (i > mn && i - mn <= k) {
// cout << i << ' ';
ve.push_back(i - mn);
// sum++;
// ans += i - b[1];
}
if ((now / i) > mn && (now / i) != i && (now / i) - mn <= k) {
// cout << i << ' ';
// sum++;
ve.push_back((now / i) - mn);
// ans += (now / i) - b[1];
}
}
}
for (auto x : ve) {
int fg = 1;
// cout << x << "\n";
for (int i = 1; i < n; i++) {
int d = __gcd(b[i] + x, b[i + 1] + x);
if (d != b[i] + x && d != b[i + 1] + x) {
fg = 0;
break;
}
}
if (fg) {
sum++;
ans += x;
}
}
cout << sum << ' ' << ans << '\n';
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int _ = 1;
cin >> _;
while (_--) {
solve();
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3620kb
input:
3 5 10 7 79 1 7 1 2 1000000000 1 2 1 100 1000000000
output:
3 8 0 0 100 5050
result:
ok 3 lines
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3852kb
input:
4 201 1000000000 1 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5 2 5...
output:
0 0 1 1 0 0 0 0
result:
wrong answer 2nd lines differ - expected: '0 0', found: '1 1'