제출 #1007943

#제출 시각아이디문제언어결과실행 시간메모리
1007943andecaandeciLasers (NOI19_lasers)C++17
100 / 100
133 ms20308 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define pp pop_back #define fi first #define se second #define lb lower_bound #define ub upper_bound #define pll pair<ll,ll> #define pii pair<int,int> #define vl vector<ll> #define nikah ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); const ll maxn = 5e5+7, modn1 = 1e9+7, modn2 = 998244353; using namespace std; // kalo kamu ngga emas nanti nadya merasa bersalah, ayo san demi nadya!!! // Kalo emang soalnya susah, pindah soal dulu // Jangan sampe diem, pikirin sesuatu, pasti bisa!!! // Cobain semua approach, jangan ngestuck di satu pemikiran // Jangan overthinking, jangan panik, tenangin pikiranmu ll t,n,q; ll a[maxn], pref[maxn]; set<pll>s; void solve () { cin>>n>>q; while (q--) { ll k; cin>>k; for (ll i=1; i<=k; i++) { cin>>a[i]; pref[i] = a[i] + pref[i-1]; } ll cnt = 0; for (ll i=k; i>=1; i--) { ll x = min(pref[i], n); ll y = max(n - cnt - a[i] + 1, (ll)1); if (x >= y) { s.insert({y,x}); } cnt += a[i]; } } ll ans = 0, x = 0, y = 0, prey = 0; for (auto p : s) { x = p.fi; y = p.se; if (y <= prey) continue; if (prey == 0) { ans += (y-x+1); } else{ ans += (y - max(prey+1, x) + 1); } prey = y; } cout<<ans<<endl; } int main () { nikah t = 1; // cin>>t; while (t--) { solve(); // cout<<endl; } }
#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...