样例输入:10 87 5 1 3 8 9 10 2 11 6
样例输出:16
算法一
算法优化
- #include <bits/stdc++.h>
- using namespace std;
- int s[100010];
- int main()
- {
- int m, n, x, i, j, sum;
- cin >> n;
- for(i = 1; i <= n; i++)
- cin >> s[i];
- cin >> m;
- for(i = 1; i <= m; i++)
- {
- cin >> x;
- sum = 0;
- for(j = 1; j <= x; j++)
- sum = sum + s[j];
- printf("%d", sum);
- if(i < m)
- printf(",");
- }
- return 0;
- }
- #include<bits/stdc++.h>
- using namespace std;
- int a[1000010];
- int main()
- {
- int i, n, k;
- scanf("%d%d", &n, &k);
- a[0] = 0;
- for(i = 1; i < n + 1; i++)
- scanf("%d", &a[i]);
- sort(a, a + n + 1);
- long long ans = 0;
- int L = 0;
- int R = n;
- while(L < R)
- {
- while(a[L] + a[R] > k && L < R)
- R--;
- if(L < R)
- ans = ans + (R - L);
- L++;
- }
- printf("%lld\n", ans);
- return 0;
- }