제출 #901353

#제출 시각아이디문제언어결과실행 시간메모리
901353pccLasers (NOI19_lasers)C++14
100 / 100
259 ms28200 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll,ll> #define pii pair<int,int> #define fs first #define sc second #define tlll tuple<ll,ll,ll> const int mxn = 1e6+10; ll R,L; int arr[mxn]; vector<pii> range; vector<int> all; void GO(){ int n; cin>>n; int arr[n]; int ls = 0,rs = 0; for(auto &i:arr){ cin>>i; rs += i; } vector<pll> v; for(auto &i:arr){ v.push_back({ls+1,L-rs+1}); ls += i; rs -= i; } v.push_back({ls+1,L-rs+1}); vector<pll> tmp; for(auto &i:v){ if(tmp.empty()||tmp.back().sc<i.fs)tmp.push_back(i); else tmp.back().sc = max(i.sc,tmp.back().sc); } for(auto &i:tmp)range.push_back(i); return; } int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>L>>R; for(int i = 0;i<R;i++)GO(); for(auto &i:range){ all.push_back(i.fs); all.push_back(i.sc); } sort(all.begin(),all.end()); all.resize(unique(all.begin(),all.end())-all.begin()); for(auto &i:range){ int l = lower_bound(all.begin(),all.end(),i.fs)-all.begin(); int r = lower_bound(all.begin(),all.end(),i.sc)-all.begin(); arr[l]++; arr[r]--; } int ans = L; int tsum = 0; for(int i = 0;i<all.size();i++){ tsum += arr[i]; if(tsum == R)ans -= all[i+1]-all[i]; } cout<<ans; }

컴파일 시 표준 에러 (stderr) 메시지

lasers.cpp: In function 'int main()':
lasers.cpp:61:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |  for(int i = 0;i<all.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...