A-Rudolf and the Ticket
左边口袋有一些面值为$b_1,b_2,b_3,…,b_n$的硬币,右边有一些面值为$c_1,c_2,c_3,…,c_m$的硬币,问有多少个$(f,s)$可以使得$b_f+c_s\le k$成立
$t(1≤t≤100)$
$n,m(1≤n,m≤100)$
$k(1\le k\le 2000)$
$b_i,c_i(1\le b_i,c_i\le 1000)$
双层循环遍历
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| void solve() {
ll n, m, k;cin >> n >> m >> k;
vector<ll>b(n), c(m);
for (ll i = 0; i < n; i++) cin >> b[i];
for (ll i = 0; i < m; i++) cin >> c[i];
ll ans = 0;
sort(b.begin(), b.end());
sort(c.begin(), c.end());
for (ll i = 0;i < n;i++) {
for (ll j = 0;j < m;j++) {
if (b[i] + c[j] <= k) {
ans++;
}
else { break; }
}
}
cout<<ans<<endl;
}
|
B-Rudolf and 121
可以对一个数组执行如下操作: