제출 #1007555

#제출 시각아이디문제언어결과실행 시간메모리
1007555makanhuliaLasers (NOI19_lasers)C++17
10 / 100
28 ms16960 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") typedef long long ll; const ll INF = 1e9; const ll MOD = 998244353; const ll MAXN = 5e5 + 5; const ll LOG = 31; #define vll vector <ll> #define pll pair <ll, ll> #define fi first #define se second #define endl '\n' ll n, m; ll b [MAXN], pf [MAXN], sf [MAXN]; vector <pll> v; vll ans; void solve(){ cin >> n >> m; for(ll i = 1; i <= m; i++){ ll z; cin >> z; for(ll j = 1; j <= z; j++) cin >> b[j]; pf[0] = 0, sf[z+1] = 0; for(ll j = 1; j <= z; j++) pf[j] = pf[j-1] + b[j]; for(ll j = z; j >= 1; j--) sf[j] = sf[j+1] + b[j]; for(ll j = 1; j <= z; j++){ ll l = pf[j-1]+1, r = n - sf[j+1]; if(l+b[j]-1 >= r-b[j]+1) v.push_back({l+b[j]-1, r-b[j]+1}); } } sort(v.begin(), v.end()); // for(auto x : v){ // cout << x.se << " " << x.fi << endl; // } ll ans = 0; ll vl = -INF, vr = -INF; for(auto x : v){ ll l = x.se, r = x.fi; if(l <= vr) vr = r; else{ if(vr != -INF) ans += vr - vl + 1; vl = l, vr = r; } } if(vr != -INF) ans += vr - vl + 1; cout << ans << endl; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // ll t; cin >> t; // while(t--){ solve(); // } }
#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...