QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#853392#9738. Make It Divisibleucup-team191#WA 1ms3832kbC++231.4kb2025-01-11 16:53:242025-01-11 16:53:30

Judging History

你现在查看的是最新测评结果

  • [2025-01-11 16:53:30]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3832kb
  • [2025-01-11 16:53:24]
  • 提交

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;
}

Details

Tip: Click on the bar to expand more detailed information

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'