1. 程式人生 > 其它 >第 45 屆國際大學生程式設計競賽(ICPC)亞洲區域賽(瀋陽)

第 45 屆國際大學生程式設計競賽(ICPC)亞洲區域賽(瀋陽)

G.The Witchwood

思路:

從大到小排序,把前k個數加起來

#include <bits/stdc++.h>

using namespace std;

const int N = 1010;

int a[N];

int main()
{
    int n, k;
    cin >> n >> k;
    for(int i = 0; i < n; i ++ ) cin >> a[i];
    sort(a, a + n, greater<int>());
    
    long long sum = 0;
    
for(int i = 0; i < k; i ++ ) sum += a[i]; cout << sum << endl; return 0; }

F.Kobolds and Catacombs

思路:

記錄一下原陣列和排好序後的陣列,並記錄其字首和,每次字首和相等的時候就答案數加一

#include <bits/stdc++.h>

using namespace std;

const int N = 1000010;

int a[N], b[N];

int main()
{
    int n;
    cin >> n;
    
for(int i = 0; i < n; i ++ ) cin >> a[i], b[i] = a[i]; sort(a, a + n); long long suma = 0, sumb = 0, res = 0; for(int i = 0; i < n; i ++ ) { suma += a[i]; sumb += b[i]; if(suma == sumb) res ++ ; } cout << res << endl; return
0; }