| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1169983 | sasde | Arcade (NOI20_arcade) | C++20 | 116 ms | 16200 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=5e5+10;
int n,m;
int ans=0;
int dp[maxn];
int a[maxn];
int t[maxn];
pair<int,int> s[maxn];
void f(int x)
{
if(x>dp[ans] || ans==0)
{
ans++;
dp[ans]=x;
}
int l=1;
int r=ans;
int pos=0;
while(l<=r)
{
int mid=(l+r)/2;
if(dp[mid]<x)
{
pos=mid;
l=mid+1;
}
else
{
r=mid-1;
}
}
dp[pos+1]=x;
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
///freopen("sort.in","r",stdin);
///freopen("sort.out","w",stdout);
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>t[i];
}
for(int i=0;i<m;i++)
{
cin>>a[i];
}
for(int i=0;i<m;i++)
{
s[i]={a[i]+t[i],-(a[i]-t[i]+m)};
}
sort(s,s+m);
for(int i=0;i<m;i++)
{
f(-s[i].second);
}
cout<<ans<<endl;
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
