제출 #1150767

#제출 시각아이디문제언어결과실행 시간메모리
1150767vicvicArcade (NOI20_arcade)C++20
51 / 100
3 ms584 KiB
#include <iostream> #include <algorithm> using namespace std; int n, m, a[500005], t[500005], len, dp[500005]; pair <int, int> ord[500005]; void add (int val) { if (val>dp[len] || len==0) { dp[++len]=val; } int st=1, dr=len, poz=0; while (st<=dr) { int mij = (st+dr) >> 1; if (dp[mij]<=val) { poz=mij; st=mij+1; } else dr=mij-1; } dp[poz+1]=val; } int main () { ios :: sync_with_stdio (0); cin.tie (nullptr); cin >> n >> m; for (int i=1;i<=m;i++) { cin >> t[i]; } for (int i=1;i<=m;i++) { cin >> a[i]; } for (int i=1;i<=m;i++) { ord[i]=make_pair (a[i]+t[i], -(a[i]-t[i]+m)); } sort (ord+1, ord+m+1); for (int i=1;i<=m;i++) { add (-ord[i].second); } cout << len; return 0; }
#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...