Submission #674747

#TimeUsernameProblemLanguageResultExecution timeMemory
674747QwertyPiLasers (NOI19_lasers)C++14
100 / 100
391 ms54504 KiB
#include <bits/stdc++.h>
#define int long long
#define fi first
#define se second
using namespace std;

int32_t main(){
	int l, r; cin >> l >> r;
	vector<pair<int, int>> block;
	for(int i = 0; i < r; i++){
		int k; cin >> k; int s = 0;
		vector<int> a; vector<pair<int, int>> d;
		for(int j = 0; j < k; j++){
			int v; cin >> v; a.push_back(v);
		}
		auto add = [&d, &l] (int sl, int sr){
			d.push_back({0, 1});
			d.push_back({sl, -1});
			d.push_back({l - sr, 1});
			d.push_back({l, -1});
		};
		int sl = 0, sr = accumulate(a.begin(), a.end(), 0LL);
		add(sl, sr);
		for(auto i : a){
			sl += i; sr -= i;
			add(sl, sr);
		}
		sort(d.begin(), d.end());
		int cnt = 0;
		for(auto i : d){
			cnt += i.se;
			if(cnt == k && i.se == -1) block.push_back({i.fi, -1});
			if(cnt == k + 1 && i.se == 1) block.push_back({i.fi, 1});
		}
	}
	sort(block.begin(), block.end());
	int ans = 0, cnt = 0, pv = -(1 << 30);
	for(auto i : block){
		if(cnt > 0) ans += i.fi - pv;
		cnt += i.se;
		pv = i.fi;
	}
	cout << ans << endl;
}

Compilation message (stderr)

lasers.cpp: In function 'int32_t main()':
lasers.cpp:11:24: warning: unused variable 's' [-Wunused-variable]
   11 |   int k; cin >> k; int s = 0;
      |                        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...