#pragma GCC optimize("unroll-all-loops")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+1000;
pair<int,int> a[N];
int n,k;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
ll ans=0;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i].first>>a[i].second;
}
sort(a+1,a+n+1);
// Build();
a[n+1]=a[n+2]=a[n+3]=a[n+4]={2e9,2e9};
a[n+4+1]=a[n+4+2]=a[n+4+3]=a[n+4+4]={2e9,2e9};
a[n+7+1]=a[n+7+2]=a[n+7+3]=a[n+7+4]={2e9,2e9};
a[n+7+4+1]=a[n+7+4+2]=a[n+7+4+3]=a[n+7+4+4]={2e9,2e9};
for(int i=1;i<=k;i++)
{
int t;
cin>>t;
for(int l=1;l<=n;l+=16)
{
if(a[l].first<=t)
{
swap(a[l].first,a[l].second);
}
if(a[l+1].first<=t)
{
swap(a[l+1].first,a[l+1].second);
}
if(a[l+2].first<=t)
{
swap(a[l+2].first,a[l+2].second);
}
if(a[l+3].first<=t)
{
swap(a[l+3].first,a[l+3].second);
}
if(a[l+4].first<=t)
{
swap(a[l+4].first,a[l+4].second);
}
if(a[l+5].first<=t)
{
swap(a[l+5].first,a[l+5].second);
}
if(a[l+6].first<=t)
{
swap(a[l+6].first,a[l+6].second);
}
if(a[l+7].first<=t)
{
swap(a[l+7].first,a[l+7].second);
}
if(a[l+8].first<=t)
{
swap(a[l+8].first,a[l+8].second);
}
if(a[l+8+1].first<=t)
{
swap(a[l+8+1].first,a[l+8+1].second);
}
if(a[l+8+2].first<=t)
{
swap(a[l+8+2].first,a[l+8+2].second);
}
if(a[l+8+3].first<=t)
{
swap(a[l+8+3].first,a[l+8+3].second);
}
if(a[l+8+4].first<=t)
{
swap(a[l+8+4].first,a[l+8+4].second);
}
if(a[l+8+5].first<=t)
{
swap(a[l+8+5].first,a[l+8+5].second);
}
if(a[l+8+6].first<=t)
{
swap(a[l+8+6].first,a[l+8+6].second);
}
if(a[l+8+7].first<=t)
{
swap(a[l+8+7].first,a[l+8+7].second);
}
}
// Update(t);
}
for(int i=1;i<=n;i++)ans+=a[i].first;
// Answer();
cout<<ans<<endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |