제출 #1160457

#제출 시각아이디문제언어결과실행 시간메모리
1160457_rain_Arcade (NOI20_arcade)C++17
100 / 100
204 ms9800 KiB
#include<bits/stdc++.h> using namespace std; const int N=(int)5e5; int n,m; struct Point{ int t,a; int rorate_x,rorate_y; void rorate(){ rorate_x=t-a; rorate_y=t+a; } bool operator < (const Point&other) const{ if (rorate_y!=other.rorate_y) return rorate_y<other.rorate_y; return rorate_x<other.rorate_x; } }; Point p[N+2]; class Solution{ private: multiset<int>bag; public: void solve(){ bag.clear(); int cnt=0; for(int i=1;i<=m;++i){ if (bag.size()){ auto it=bag.lower_bound(p[i].rorate_x+1); --it; if (it!=bag.end() && *it<=p[i].rorate_x) bag.erase(it); } bag.insert(p[i].rorate_x); } cout<<bag.size(); } }; Solution check_tool; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); // freopen("txt.inp","r",stdin); // freopen("txt.out","w",stdout); cin>>n>>m; for(int i=1;i<=m;++i) cin>>p[i].t; for(int i=1;i<=m;++i) cin>>p[i].a,p[i].rorate(); sort(p+1,p+m+1); check_tool.solve(); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...