제출 #1167479

#제출 시각아이디문제언어결과실행 시간메모리
1167479JungPSLasers (NOI19_lasers)C++17
0 / 100
176 ms47912 KiB
#include<iostream> #include<vector> #include<utility> #include<algorithm> #include<cstring> #include<set> using namespace std; pair<int,int> get(int a,int b,int c){ return {b-c+1,a+c-1}; } set<int> st; int ep[1000007]; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int l,r,x,tmp; cin >> l >> r; while(r--){ vector<int> vec,raw; vec.push_back(0); raw.push_back(0); int x; cin >> x; int sum=0; for(int i=1;i<=x;++i){ cin >> tmp; raw.push_back(tmp); vec.push_back(tmp); vec[i]+=vec[i-1]; sum+=tmp; } memset(ep,0,sizeof(ep)); for(int i=0;i<x;++i){ if(vec[x-i-1]>=1){ ++ep[1]; --ep[vec[x-i-1]+1]; } pair<int,int> tmp=get(vec[x-i-1]+1,l-sum+vec[x-i],raw[x-i]); if(tmp.second>=tmp.first){ ++ep[tmp.first]; --ep[tmp.second+1]; } if(l>=l-sum+vec[x-i]+1){ ++ep[l-sum+vec[x-i]+1]; --ep[l]; } } int tmp=0; for(int i=1;i<=l;++i){ tmp+=ep[i]; if(tmp==x){ st.insert(i); } } } cout << st.size(); }
#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...