#include<bits/stdc++.h>
#define f first
#define s second
#define pb push_back
#define pii pair<int,int>
#define pll pair<ll,ll>
#define ll long long
#define sz(x) (ll)x.size()
using namespace std;
int n;
void sv1(){
ll ans=0;vector<ll>vec;
for(int i=1;i<=n;i++){
char X,Y;ll x,y;
cin>>X>>x>>Y>>y;
if(X==Y)ans+=abs(y-x);
else vec.pb(x),vec.pb(y),ans++;
}sort(vec.begin(),vec.end());
ll med=vec[(sz(vec)-1)/2];
for(auto it : vec)ans+=abs(med-it);
cout<<ans;return;
}
void sv2(){
ll ans=0;vector<pll>v;
for(int i=1;i<=n;i++){
char X,Y;ll x,y;
cin>>X>>x>>Y>>y;
if(x>y)swap(x,y);
if(X==Y)ans+=abs(y-x);
else v.pb({x,y}),ans++;
}sort(v.begin(),v.end());
priority_queue<ll>lq;
priority_queue<ll,vector<ll>,greater<ll>>rq;
ll dl[sz(v)+2]={0},dr[sz(v)+2]={0};
ll sl=0,sr=0;
for(int i=1;i<=sz(v);i++){
lq.push(v[i-1].f),lq.push(v[i-1].s);
sl+=v[i-1].f+v[i-1].s;
while(!lq.empty()&&!rq.empty()&&lq.top()>rq.top()){
sl-=lq.top();sr+=lq.top();rq.push(lq.top());lq.pop();
}
while(sz(lq)>sz(rq)+1){
sl-=lq.top();sr+=lq.top();rq.push(lq.top());lq.pop();
}
/*while(sz(rq)>sz(lq)){
sr-=rq.top();sl+=rq.top();lq.push(rq.top());rq.pop();
}*/
dl[i]=sz(lq)*lq.top()-sl+sr-sz(rq)*lq.top();
}while(!lq.empty())lq.pop();while(!rq.empty())rq.pop();sl=0,sr=0;
for(int i=sz(v);i>=1;i--){
lq.push(v[i-1].f),lq.push(v[i-1].s);
sl+=v[i-1].f+v[i-1].s;
while(!lq.empty()&&!rq.empty()&&lq.top()>rq.top()){
sl-=lq.top();sr+=lq.top();rq.push(lq.top());lq.pop();
}
while(sz(lq)>sz(rq)+1){
sl-=lq.top();sr+=lq.top();rq.push(lq.top());lq.pop();
}
/*while(sz(rq)>sz(lq)){
sr-=rq.top();sl+=rq.top();lq.push(rq.top());rq.pop();
}*/dr[i]=sz(lq)*lq.top()-sl+sr-sz(rq)*lq.top();
}ll res=1e18;
for(int i=1;i<=sz(v)-1;i++)res=min(res,dl[i]+dr[i+1]);
cout<<res+ans;return ;
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int k;cin>>k>>n;
if(k==1)sv1();else sv2();
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
376 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
4 |
Correct |
1 ms |
348 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
1 ms |
344 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
11 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
1 ms |
344 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
348 KB |
Output is correct |
7 |
Correct |
1 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
11 |
Correct |
1 ms |
348 KB |
Output is correct |
12 |
Correct |
15 ms |
2636 KB |
Output is correct |
13 |
Correct |
31 ms |
2520 KB |
Output is correct |
14 |
Correct |
23 ms |
2520 KB |
Output is correct |
15 |
Correct |
18 ms |
1500 KB |
Output is correct |
16 |
Correct |
17 ms |
2520 KB |
Output is correct |
17 |
Correct |
21 ms |
2656 KB |
Output is correct |
18 |
Correct |
25 ms |
2504 KB |
Output is correct |
19 |
Correct |
35 ms |
2520 KB |
Output is correct |
20 |
Correct |
20 ms |
2520 KB |
Output is correct |
21 |
Correct |
26 ms |
2520 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
0 ms |
348 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |