QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#710515#9528. New Energy VehicleyouziWA 1ms5660kbC++23972b2024-11-04 20:12:542024-11-04 20:12:55

Judging History

This is the latest submission verdict.

  • [2024-11-04 20:12:55]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 5660kb
  • [2024-11-04 20:12:54]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
#define int long long
#define x first
#define y second
int a[N];
int b[N];
int c[N];
void slove()
{
	int ans = 0;
	int s = 0;
	int ss = 0;
	int n , m;
	cin >> n >> m;
	map<int ,int> k;
	for(int i = 1 ; i <= n ; ++ i)
	{
		cin >> a[i];
		s += a[i];
		ss += a[i];
	}
	for(int i = 1 ; i <= m ; ++ i)
	{
		cin >> b[i] >> c[i];
	}
	set<pair<int ,int>>p;
	for(int i = 1 ; i <= m ; ++ i)
	{
		p.insert({b[i - 1] + 1 , b[i]});
		int st = k[c[i]] + 1;
		int ma = a[c[i]];
		while(p.size())
		{
			auto kk = *p.lower_bound({st , 0});
			p.erase(kk);
			int l = kk.x;
			int t = kk.y;
			int dis = t - l + 1;
			if(ma < dis)
			{
				s += ma;
				p.insert({l + ma , t});
				break;
			}
			s += dis;
			ma -= dis;
			if(t == b[i]) break;
		}
		k[c[i]] = i;
	}
	cout << s << endl;
}
signed main()
{
	int t = 1;
	cin >> t;
	while(t --)
	{
		slove();
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 5592kb

input:

2
3 1
3 3 3
8 1
2 2
5 2
1 2
2 1

output:

12
9

result:

ok 2 lines

Test #2:

score: -100
Wrong Answer
time: 1ms
memory: 5660kb

input:

6
3 2
2 2 2
6 1
7 1
2 2
3 3
2 1
6 2
2 3
2 2
5 1
7 2
9 1
2 2
3 3
2 1
6 2
1 1
999999999
1000000000 1
1 1
1000000000
1000000000 1

output:

10
11
10
11
1999999998
2000000000

result:

wrong answer 1st lines differ - expected: '9', found: '10'