QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#657294#7622. Yet Another CoffeeDarksideCoderRE 1ms3956kbC++201.7kb2024-10-19 14:31:522024-10-19 14:32:01

Judging History

你现在查看的是最新测评结果

  • [2024-10-19 14:32:01]
  • 评测
  • 测评结果:RE
  • 用时:1ms
  • 内存:3956kb
  • [2024-10-19 14:31:52]
  • 提交

answer

#include<bits/stdc++.h>
//#define Debug
using std::vector;
using std::pair;
#define fi first
#define se second
#define ll long long
#define pii pair<int,int>
template<typename T>
void Clear(T&x){T y;x.swap(y);}
template<typename... Args>
void Clear(Args&... args){
    (Clear(args), ...);//必须加括号
}
std::default_random_engine E(std::chrono::steady_clock().now().time_since_epoch().count());

void Solve(){
	int n,m;scanf("%d%d",&n,&m);
	vector<ll>Arr;Arr.resize(n+10);
	vector<ll>Wrr;Wrr.resize(m+10);
	for(int i=1;i<=n;i++)
		scanf("%lld",&Arr[i]);
	for(int i=1;i<=m;i++){
		long long x;int y;
		scanf("%d",&y);
		scanf("%lld",&x);
		Wrr[y]+=x;
	}
	for(int i=n-1;i>=1;i--)
		Wrr[i]+=Wrr[i+1];
	std::set<pair<ll,int>>S;
	for(int i=1;i<=n;i++){
		S.insert({Arr[i]-Wrr[i],i});
	}
	std::priority_queue<int,vector<int>,std::greater<int>>Q;
	ll ans=0,tmp=0;
	int last=n+1;
	
	auto Relieve=[&](int h,int t){
		for(int i=h;i!=t;i++){
			S.erase({Arr[i]-Wrr[i],i});
			if(i!=h)Q.push(Arr[i]);
		}
	};
	
	for(int i=1;i<=n;i++){
		if(!S.empty()){
			auto k=*S.begin();
			if(!Q.empty()){
				ll p=Q.top();
				if(k.fi+tmp<=p){
					ans+=k.fi+tmp;
					Relieve(k.se,last);
					last=k.se;
					tmp=Wrr[k.se];
				}
				else{
					ans+=Q.top();
					Q.pop();
				}
			}
			else{
				ans+=k.fi+tmp;
				Relieve(k.se,last);
				last=k.se;
				tmp=Wrr[k.se];
			}
		}
		else{
			ans+=Q.top();
			Q.pop();
		}
		printf("%lld ",ans);
	}
	puts("");
}


int main(){
	#ifdef LOCAL
	freopen("In.txt","r",stdin);
	freopen("Out.txt","w",stdout);
	#endif
	int Task=1;scanf("%d",&Task);
	for(int Case=1;Case<=Task;Case++){
		Solve();
	}
	return 0;
}

详细

Test #1:

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

input:

5
10 14
17 37 59 65 53 73 68 177 160 111
10 177
5 193
2 30
3 63
2 339
3 263
5 178
2 190
9 23
10 328
10 200
9 8
3 391
6 230
12 9
152 306 86 88 324 59 18 14 42 260 304 55
3 50
2 170
1 252
7 811
1 713
7 215
10 201
4 926
8 319
19 20
182 74 180 201 326 243 195 31 170 263 284 233 48 166 272 281 179 116 31...

output:

-2596 -2559 -2506 -2447 -2382 -2314 -2241 -2130 -1970 -1793 
-3505 -3491 -3473 -3431 -3376 -3317 -3231 -3143 -2883 -2579 -2273 -1949 
-6527 -6496 -6448 -6374 -6258 -6092 -5922 -5743 -5563 -5368 -5167 -4934 -4691 -4428 -4156 -3875 -3591 -3272 -2946 
-3219 -2987 -2572 -2140 -1707 -1238 -768 -274 243 1...

result:

ok 70 numbers

Test #2:

score: 0
Accepted
time: 0ms
memory: 3956kb

input:

2
5 2
1 2 3 4 5
3 1
4 2
7 3
4 3 1 10 3 8 6
4 9
3 8
4 5

output:

-2 0 3 7 12 
-21 -18 -15 -11 -5 3 13 

result:

ok 12 numbers

Test #3:

score: 0
Accepted
time: 0ms
memory: 3872kb

input:

8
1 0
72916
9 11
130289 240521 653024 625847 679075 529899 486802 540872 353600
2 5400
2 257841
6 48161
3 71484
9 156788
3 181910
4 45589
6 210869
5 70426
9 87059
5 115764
8 7
634608 412120 360938 425426 825551 138578 678304 747502
2 235317
4 281859
5 553042
8 295615
8 32014
8 755313
4 439284
19 10
...

output:

72916 
-1121002 -880481 -526881 -40079 489820 1030692 1656539 2309563 2988638 
-2180324 -2041746 -1680808 -1255382 -620774 57530 805032 1630583 
-1025384 -1022941 -1018403 -1013731 -1006580 -998875 -987675 -970496 -953098 -932654 -909692 -886331 -862054 -835158 -807901 -779123 -747157 -713222 -67928...

result:

ok 85 numbers

Test #4:

score: 0
Accepted
time: 0ms
memory: 3876kb

input:

5
18 24
561699155 345484852 420718917 108291879 553918474 392861085 299874093 28528146 248352314 398850144 248444258 89834833 251398697 101739017 240342391 320200928 481962939 343719433
5 354704
6 9355942
7 7098134
16 38746862
15 35848885
14 42058214
15 18411581
9 23207206
18 19518309
14 20707458
13...

output:

-416165974 -387637828 -297802995 -196063978 44278413 292630727 541074985 792473682 1079767658 1379641751 1699842679 2043562112 2436423197 2835273341 3255992258 3737955197 4291873671 4853572826 
335919368 705602908 
146524143 438492672 
-3870833640 -3817930784 -3749728771 -3627446160 -3471700060 -322...

result:

ok 39 numbers

Test #5:

score: -100
Runtime Error

input:

9
30 20
150 250 278 8 74 295 357 116 543 287 37 345 14 173 153 407 136 269 121 109 318 401 280 500 267 257 238 312 225 477
10 293
13 162
29 145
13 120
2 17
3 192
21 70
7 102
1 286
18 50
1 296
3 308
21 24
13 118
8 22
9 52
21 156
11 258
9 263
23 234
13 20
145 133 51 146 103 103 44 154 173 68 171 13 6
...

output:


result: