Submission #1272867

#TimeUsernameProblemLanguageResultExecution timeMemory
1272867goulthenLasers (NOI19_lasers)C++20
63 / 100
75 ms26588 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define rep(i,a,b) for(int i = a; i <= b; i++)
#define per(i,a,b) for(int i = a; i >= b; i--)
#define pii pair<int,int>
#define pb push_back
#define fi first
#define se second

const int MAXN = 5e5+10;
const int INF = 1e18+10;
int dif[1000001];

int32_t main() {
	ios_base::sync_with_stdio(0); cin.tie(nullptr);
	int L,m;cin >> L >> m;

	vector<vector<pii>> ranges(m+1);

	rep(i,1,m) {
		int j, s=0;cin >> j;
		vector<int> a;
		while (j--) {
			int x;cin >> x;
			a.pb(x);
			s += x;
		}

		int cur = 0;
		for (int &x : a) {
			cur += x;
			if(L-s+1<=cur)ranges[i].pb({L-s+1,cur});
			s-=x;
		}
	}

	rep(i,1,m) {
		for (auto &[l,r] : ranges[i]) dif[l]++, dif[r+1]--;
	}

	int cnt = 0, cur = 0;
	rep(i,1,1000000) {
		cur+=dif[i];
		cnt += min(cur,1LL);
	}
	cout << cnt << '\n';

	return 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...