QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#853392 | #9738. Make It Divisible | ucup-team191# | WA | 1ms | 3832kb | C++23 | 1.4kb | 2025-01-11 16:53:24 | 2025-01-11 16:53:30 |
Judging History
answer
#include <bits/stdc++.h>
#define X first
#define Y second
#define PB push_back
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N = 1e5 + 500;
int n, A[N], L;
vector < int > kand;
vector < pii > uvjet;
void filtriraj(int A, int B) {
vector < int > nw;
for(int x : kand) {
if((B + x) % (A + x) == 0) nw.PB(x);
}
kand = nw;
}
void solve() {
uvjet.clear(); kand.clear();
scanf("%d%d", &n, &L);
for(int i = 0;i < n;i++) {
scanf("%d", A + i);
}
stack<int> S;
for(int i = 0;i < n;i++) {
while(!S.empty() && A[S.top()] >= A[i]) {
if(A[S.top()] > A[i])
uvjet.PB({A[i], A[S.top()]});
S.pop();
}
S.push(i);
}
for(;!S.empty();S.pop());
for(int i = n - 1;i >= 0;i--) {
while(!S.empty() && A[S.top()] >= A[i]) {
if(A[S.top()] > A[i])
uvjet.PB({A[i], A[S.top()]});
S.pop();
}
S.push(i);
}
if(uvjet.empty()) {
printf("%d %lld\n", L, (ll)L * (L + 1) / 2);
return;
}
int A = uvjet[0].Y - uvjet[0].X;
for(int i = 1;i * i <= A && i <= L + uvjet[0].X;i++) {
if(A % i == 0) {
if(i > uvjet[0].X) kand.PB(i - uvjet[0].X);
if(A / i < i && A / i <= L + uvjet[0].X && A / i > uvjet[0].X)
kand.PB(A / i - uvjet[0].X);
}
}
for(auto &[A, B] : uvjet) filtriraj(A, B);
ll sm = 0;
for(int x : kand) sm += x;
printf("%d %lld\n", (int)kand.size(), sm);
}
int main() {
int T; scanf("%d", &T);
for(;T--;) solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3824kb
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: 0
Accepted
time: 0ms
memory: 3832kb
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 0 0 0 0 0 0
result:
ok 4 lines
Test #3:
score: -100
Wrong Answer
time: 1ms
memory: 3796kb
input:
500 4 1000000000 8 14 24 18 4 1000000000 17 10 18 14 4 1000000000 6 17 19 19 4 1000000000 15 14 15 25 4 1000000000 16 16 5 25 4 1000000000 4 30 20 5 4 1000000000 11 4 23 9 4 1000000000 14 25 13 2 4 1000000000 18 18 1 15 4 1000000000 22 22 22 28 4 1000000000 15 17 17 10 4 1000000000 22 14 13 25 4 100...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
wrong answer 78th lines differ - expected: '2 4', found: '1 1'