Submission #31196561


Source Code Expand

#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<algorithm>
#include<cstring>
using namespace std;

int n, m;
int arr[200010][2];
long long v[200010];
multiset<int> ms;
priority_queue<int> pq;

int main()
{
	int i;
	long long ans;
	long long x;
	long long sum;
	int cnt;

	cin >> n >> m;
	for (i = 1; i <= n; i++)
	{
		cin >> arr[i][0] >> arr[i][1];
	}

	ans = 0;
	for (i = 1; i <= n; i++)
	{
		if (arr[i][0] == 1) ans = arr[i][1];
		else ans += arr[i][1];

		v[i] = ans;
	}

	x = ans;
	cnt = 0;
	sum = 0;
	for (i = n; i >= 1; i--)
	{
		if (arr[i][0] == 1)
		{
			if (cnt < m)
			{
				x = v[i - 1] + sum;
				cnt++;
			}
			else
			{
				if (pq.empty()) break;

				sum += pq.top();
				pq.pop();
				x = v[i - 1] + sum;
			}
		}
		else
		{
			sum += arr[i][1];

			if (arr[i][1] >= 0) continue;

			if (cnt < m)
			{
				pq.push(arr[i][1]);
				x -= arr[i][1];
				sum -= arr[i][1];
				cnt++;
			}
			else
			{
				if (!pq.empty() && pq.top() > arr[i][1])
				{
					x += pq.top();
					sum += pq.top();
					pq.pop();
					x -= arr[i][1];
					sum -= arr[i][1];
					pq.push(arr[i][1]);
				}
			}
		}

		ans = max(ans, x);
	}

	cout << ans;
}

Submission Info

Submission Time
Task F - Ignore Operations
User gojib2002
Language C++ (GCC 9.2.1)
Score 500
Code Size 1312 Byte
Status AC
Exec Time 90 ms
Memory 6736 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 32
Set Name Test Cases
Sample example_00.txt, example_01.txt, example_02.txt
All example_00.txt, example_01.txt, example_02.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt
Case Name Status Exec Time Memory
example_00.txt AC 7 ms 3592 KiB
example_01.txt AC 2 ms 3596 KiB
example_02.txt AC 2 ms 3440 KiB
test_00.txt AC 87 ms 6652 KiB
test_01.txt AC 90 ms 6528 KiB
test_02.txt AC 10 ms 3748 KiB
test_03.txt AC 11 ms 3696 KiB
test_04.txt AC 8 ms 3684 KiB
test_05.txt AC 43 ms 4744 KiB
test_06.txt AC 85 ms 6736 KiB
test_07.txt AC 80 ms 6408 KiB
test_08.txt AC 31 ms 4516 KiB
test_09.txt AC 73 ms 6180 KiB
test_10.txt AC 16 ms 4004 KiB
test_11.txt AC 19 ms 4064 KiB
test_12.txt AC 21 ms 4080 KiB
test_13.txt AC 73 ms 5976 KiB
test_14.txt AC 37 ms 4492 KiB
test_15.txt AC 45 ms 4840 KiB
test_16.txt AC 36 ms 4604 KiB
test_17.txt AC 22 ms 3996 KiB
test_18.txt AC 66 ms 5828 KiB
test_19.txt AC 61 ms 5416 KiB
test_20.txt AC 53 ms 5272 KiB
test_21.txt AC 80 ms 6296 KiB
test_22.txt AC 8 ms 3568 KiB
test_23.txt AC 71 ms 6080 KiB
test_24.txt AC 6 ms 3604 KiB
test_25.txt AC 49 ms 4868 KiB
test_26.txt AC 44 ms 4872 KiB
test_27.txt AC 68 ms 5904 KiB
test_28.txt AC 50 ms 5040 KiB