求助
  • 板块CF413C Jeopardy!
  • 楼主ttltony
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/3/29 13:18
  • 上次更新2023/10/23 20:08:54
查看原帖
求助
709380
ttltony楼主2023/3/29 13:18

第7个点错了谁可以看一看

#include <iostream>
#include <algorithm>

using namespace std;

typedef long long ll;

inline ll read() {
    ll x = 0, f = 1;
    char ch = getchar();
    while (!isdigit(ch)) {
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while (isdigit(ch)) {
        x = (x << 1) + (x << 3) + (ch ^ 48);
        ch = getchar();
    }
    return x * f;
}

inline void write(ll x) {
    if (x < 0) putchar('-'), x = -x;
    if (x > 9) write(x / 10);
    putchar(x % 10 + '0');
}

ll n, m;
ll a[101], b[31];
bool f[101];

bool cmp(ll x, ll y) {
	return x > y;
}

int main() {
	n = read();
	m = read();
	for (ll i = 1; i <= n; i ++ ) a[i] = read();
	for (ll i = 1; i <= m; i ++ ) b[i] = read(), f[b[i]] = true;
	sort(b + 1, b + n + 1, cmp);
	ll sum = 0;
	for (ll i = 1; i <= n; i ++ ) if (!f[i]) sum += a[i];
	for (ll i = 1; i <= m; i ++ ) {
		if (a[b[i]] > sum) sum += a[b[i]];
		else sum *= 2;
	}
	write(sum);
	putchar('\n');
    return 0;
}
2023/3/29 13:18
加载中...