Submission #1320697
Source Code Expand
#include<iostream>
#include<algorithm>
#include<vector>
#include<cassert>
#include<set>
using namespace std;
#define sz(x) (int)(x.size())
#define rep(i,a,b) for(int i=a;i<b;++i)
#define pb push_back
typedef long long ll;
//////////////////////
int const N = 1e5 + 41;
int l[N], r[N], n;
ll pref[N];
int tim;
ll getPref(int l, int r){
ll ret = pref[r];
if(l > 0) ret -= pref[l-1];
return ret;
}
struct S{
ll x, type, time;
S(){};
S(ll x, ll type, ll time) : x(x), type(type), time(time) {};
bool operator<(const S &s) const {
return getX() < s.getX();
};
ll getX() const {
if(type == 0){
return x - getPref(time+1, tim);
}else{
return x + getPref(time, tim-1);
}
}
};
multiset<S> lp, rp;
ll getLast(multiset<S> &ms){
multiset<S> :: iterator it = ms.end();
--it;
return ((*it).getX());
}
ll getFirst(multiset<S> &ms){
auto it = ms.begin();
return (*it).getX();
}
void solve(){
cin >> n;
rep(i, 0, n) cin >> l[i] >> r[i];
rep(i, 0, n) pref[i] = (r[i] - l[i] + (i > 0 ? pref[i-1] : 0));
ll ans = 0;
lp.insert(S(l[0], 0, 0));
rp.insert(S(l[0], 1, 0));
rep(i, 1, n){
tim = i;
if(l[i] >= getLast(lp) && l[i] <= getFirst(rp)){
lp.insert(S(l[i], 0, i));
rp.insert(S(l[i], 1, i));
}else if(l[i] >= getFirst(rp)){
ans += (l[i] - getFirst(rp));
S tmp = (*rp.begin());
tmp.type = 0;
tmp.x = tmp.getX();
tmp.time = i;
rp.erase(rp.begin());
lp.insert(tmp);
rp.insert(S(l[i], 1, i));
rp.insert(S(l[i], 1, i));
}else{
ans += (getLast(lp) - l[i]);
auto it = lp.end();
--it;
S tmp = (*it);
tmp.type = 1;
tmp.x = tmp.getX();
tmp.time = i;
lp.erase(it);
rp.insert(tmp);
lp.insert(S(l[i], 0, i));
lp.insert(S(l[i], 0, i));
}
}
cout << ans << endl;
}
int main(){
#ifdef _DEBUG
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
solve();
return 0;
}
Submission Info
Submission Time |
|
Task |
E - NarrowRectangles |
User |
Filyan |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1986 Byte |
Status |
WA |
Exec Time |
197 ms |
Memory |
14336 KB |
Judge Result
Set Name |
Sample |
Subtask |
All |
Score / Max Score |
0 / 0 |
0 / 300 |
0 / 700 |
Status |
|
|
|
Set Name |
Test Cases |
Sample |
0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 0_004.txt |
Subtask |
0_000, 0_001, 0_004, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt |
All |
0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 0_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 2_018.txt, 2_019.txt, 2_020.txt, 2_021.txt, 2_022.txt, 2_023.txt, 2_024.txt, 2_025.txt, 2_026.txt, 2_027.txt, 2_028.txt, 2_029.txt, 2_030.txt, 2_031.txt, 2_032.txt, 2_033.txt, 2_034.txt, 2_035.txt, 2_036.txt |
Case Name |
Status |
Exec Time |
Memory |
0_000.txt |
AC |
1 ms |
256 KB |
0_001.txt |
AC |
1 ms |
256 KB |
0_002.txt |
AC |
1 ms |
256 KB |
0_003.txt |
AC |
1 ms |
256 KB |
0_004.txt |
AC |
1 ms |
256 KB |
1_005.txt |
AC |
2 ms |
256 KB |
1_006.txt |
AC |
2 ms |
256 KB |
1_007.txt |
AC |
1 ms |
256 KB |
1_008.txt |
WA |
2 ms |
256 KB |
1_009.txt |
WA |
2 ms |
256 KB |
1_010.txt |
WA |
2 ms |
256 KB |
1_011.txt |
WA |
2 ms |
256 KB |
1_012.txt |
WA |
2 ms |
256 KB |
1_013.txt |
WA |
2 ms |
256 KB |
1_014.txt |
WA |
2 ms |
256 KB |
1_015.txt |
WA |
2 ms |
256 KB |
1_016.txt |
WA |
2 ms |
256 KB |
1_017.txt |
WA |
1 ms |
256 KB |
2_018.txt |
AC |
185 ms |
14336 KB |
2_019.txt |
AC |
165 ms |
14336 KB |
2_020.txt |
AC |
167 ms |
14336 KB |
2_021.txt |
WA |
152 ms |
14336 KB |
2_022.txt |
WA |
150 ms |
14336 KB |
2_023.txt |
WA |
155 ms |
14336 KB |
2_024.txt |
WA |
150 ms |
14336 KB |
2_025.txt |
WA |
152 ms |
14336 KB |
2_026.txt |
WA |
150 ms |
14336 KB |
2_027.txt |
WA |
154 ms |
14336 KB |
2_028.txt |
WA |
150 ms |
14336 KB |
2_029.txt |
WA |
153 ms |
14336 KB |
2_030.txt |
WA |
153 ms |
14336 KB |
2_031.txt |
WA |
197 ms |
14336 KB |
2_032.txt |
WA |
193 ms |
14336 KB |
2_033.txt |
WA |
195 ms |
14336 KB |
2_034.txt |
WA |
195 ms |
14336 KB |
2_035.txt |
WA |
179 ms |
14336 KB |
2_036.txt |
AC |
192 ms |
14336 KB |