제출 #1132256

#제출 시각아이디문제언어결과실행 시간메모리
1132256fcmalkcinLasers (NOI19_lasers)C++20
100 / 100
591 ms35280 KiB
// Online C++ compiler to run C++ program online
#include<bits/stdc++.h> // header for every library
using namespace std;
#define ll int
const ll maxn = 5e5 + 10;

map<int, int> prefCover; 
ll vt[maxn]; 

int main() {

    ll n, l; 
    cin >> l >> n; 
    for (int i = 1; i <= n; i++) {
        ll siz; 
        cin >> siz; 
        int total = 0; 
        for (int j = 0; j < siz; j++) {
            cin >> vt[j];
            total += vt[j];
        }
        int cur = 0;
        for (int j = 0; j <= siz; j++) {
            // range: cur -> min(L - (total - cur), cur + vt[j])
            ll end = l; 
            if (j < siz) end = min(l - (total - cur), cur + vt[j]); 
            if (cur <= end) {
                prefCover[cur]++; 
                prefCover[end]--;
            }
            if (j != siz) {
                cur += vt[j];
            }
        }
    }
    ll ans = 0; 
    int prev = 0; 
    int cntnw = 0;
    for (auto p: prefCover) {
        int cur = p.first; 
        if (cntnw == n) {
            ans += (cur - prev);
        }
        cntnw += p.second; 
        prev = cur; 
    }
    cout << l - ans << 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...