Submission #853566

#TimeUsernameProblemLanguageResultExecution timeMemory
853566annabeth9680Lasers (NOI19_lasers)C++17
100 / 100
87 ms10172 KiB
#include <bits/stdc++.h>
using namespace std;
int main(){
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int L,R; cin >> L >> R;
    vector<pair<int,int>> blocks;
    for(int i = 0;i<R;++i){
        int X; cin >> X;
        vector<int> W(X+1);
        int l = 0, r = L;
        for(int j = 1;j<=X;++j){
            cin >> W[j];
            l += W[j];
        }
        l -= W[X];
        for(int j = X;j>=1;--j){
            int l1 = l, l2 = r-W[j], r1 = r, r2 = l+W[j];
            if(max(l1,l2) < min(r1,r2)){
                blocks.push_back({max(l1,l2),min(r1,r2)});
            }
            if(j != 1) l -= W[j-1];
            r -= W[j];
        }

    }
    sort(blocks.begin(),blocks.end());
    int l = 0, r = 0, ans = 0;
    for(int i = 0;i<blocks.size();++i){
        if(blocks[i].first > r){
            ans += r-l;
            l = r = blocks[i].first;
        }
        r = max(r,blocks[i].second);
    }
    ans += r-l;
    cout << ans << "\n";
    return 0;
}

Compilation message (stderr)

lasers.cpp: In function 'int main()':
lasers.cpp:28:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for(int i = 0;i<blocks.size();++i){
      |                   ~^~~~~~~~~~~~~~
#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...