Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
34417 沈仲恩 【S】T1 C++ 编译错误 0 0 MS 0 KB 1049 2024-11-07 18:49:30

Tests(0/0):


#include <bits/stdc++.h> using namespace std; int n, a[1000005], b[1000005]; char s[1000005]; // bool tg[1000005]; // inline void pd(int x) // { // } // inline void upd(int x, int l, int r, int ql, int qr) // { // if (ql <= l && r <= qr) // { // tg[x] = 1; // return ; // } // } priority_queue <int, vector <int>, greater <> > pq; signed main() { //freopen("poker.in", "r", stdin); //freopen("poker.out", "w", stdout); scanf("%d %s", &n, s + 1); for (int i = 1; i <= n; i++) { s[i] -= '0'; scanf("%d", &a[i]); } for (int i = 1; i <= n; i++) { scanf("%d", &b[i]); } long long ans = 0; for (int i = 1; i <= n; i++) { while (!pq.empty() && pq.top() < i) pq.pop(); if (pq.size() & 1) s[i] = 1 - s[i]; if (s[i] == 1) { pq.push(a[i]); ans += b[i]; s[i] = 0; } } printf("%lld", ans); return 0; }


测评信息: