题目链接

设$a_1 < a_2 < a_3 < a_4$,$S = a_1 + a_2 + a_3 + a_4$,则$\frac{S}{2} < a_2 + a_4 < a_3 + a_4 < S$。所以$a_2 + a_4$和$a_3 + a_4$不整除$S$。那么第一问的答案$\leqslant 4$,通过观察样例,我们发现第一问的答案$= 4$。

$\frac{S}{2} \leqslant \max(a_1 + a_4, a_2 + a_3) < S$,所以$a_1 + a_4 = a_2 + a_3 = \frac{S}{2}$。

设$u = a_1 + a_2$,$v = a_1 + a_3$,则$S = 2(a_2 + a_3) = 2(u + v − 2a_1)$。

因为$v|s$,所以$v|2(u−2a_1)$。因为$u<v$,所以$1 \leqslant \frac{2(u−2a_1)}{v}<2$。所以$v=2(u−2a_1)$。

因为$u|s$,所以$u|2(v−2a_1)$。因为$2(v−2a_1)=2(2(u−2a_1)−2a_1)=4u−12a_1$,所以$u|12a_1$。

因为$u<v$,所以$u<2(u−2a_1)$,所以$u>4a_1$。所以$u=6a_1$或$u=12a_1$。所以$A=\lbrace a_1,5a_1,7a_1,11a_1\rbrace$或$A=\lbrace a_1,11a_1,19a_1,29a_1\rbrace$。

1
2
3
4
5
6
7
8
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, l, r;
int main() {
scanf("%lld%lld", &l, &r);
printf("4\n%lld", max(r / 11 - l + 1, 0ll) + max(r / 29 - l + 1, 0ll));
}