QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#505348 | #7279. Tricks of the Trade | PCTprobability | 5 | 1827ms | 20732kb | C++14 | 6.0kb | 2024-08-05 03:27:00 | 2024-08-05 03:27:02 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using ll = long long;
using ld = long double;
using ull = unsigned long long;
#define endl "\n"
typedef pair<int, int> Pii;
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define REP3(i, m, n) for (int i = (m); (i) < int(n); ++ (i))
#define rep(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define ALL(x) begin(x), end(x)
#define rrep(i,a,b) for(int i=a;i>=b;i--)
#define fore(i,a) for(auto &i:a)
#define all(s) (s).begin(),(s).end()
#define drep2(i, m, n) for (int i = (m)-1; i >= (n); --i)
#define drep(i, n) drep2(i, n, 0)
#define rever(vec) reverse(vec.begin(), vec.end())
#define sor(vec) sort(vec.begin(), vec.end())
#define fi first
#define FOR_(n) for (ll _ = 0; (_) < (ll)(n); ++(_))
#define FOR(i, n) for (ll i = 0; (i) < (ll)(n); ++(i))
#define se second
#define pb push_back
#define P pair<ll,ll>
#define PQminll priority_queue<ll, vector<ll>, greater<ll>>
#define PQmaxll priority_queue<ll,vector<ll>,less<ll>>
#define PQminP priority_queue<P, vector<P>, greater<P>>
#define PQmaxP priority_queue<P,vector<P>,less<P>>
#define NP next_permutation
#define die(a) {cout<<a<<endl;return 0;}
#define dier(a) {return a;}
//const ll mod = 1000000009;
const ll mod = 998244353;
//const ll mod = 1000000007;
const ll inf = 4000000000000000000ll;
const ld eps = ld(0.00000000001);
static const long double pi = 3.141592653589793;
template<class T>void vcin(vector<T> &n){for(int i=0;i<int(n.size());i++) cin>>n[i];}
template<class T,class K>void vcin(vector<T> &n,vector<K> &m){for(int i=0;i<int(n.size());i++) cin>>n[i]>>m[i];}
template<class T>void vcout(vector<T> &n){for(int i=0;i<int(n.size());i++){cout<<n[i]<<" ";}cout<<endl;}
template<class T>void vcin(vector<vector<T>> &n){for(int i=0;i<int(n.size());i++){for(int j=0;j<int(n[i].size());j++){cin>>n[i][j];}}}
template<class T>void vcout(vector<vector<T>> &n){for(int i=0;i<int(n.size());i++){for(int j=0;j<int(n[i].size());j++){cout<<n[i][j]<<" ";}cout<<endl;}cout<<endl;}
void yes(bool a){cout<<(a?"yes":"no")<<endl;}
void YES(bool a){cout<<(a?"YES":"NO")<<endl;}
void Yes(bool a){cout<<(a?"Yes":"No")<<endl;}
void possible(bool a){ cout<<(a?"possible":"impossible")<<endl; }
void Possible(bool a){ cout<<(a?"Possible":"Impossible")<<endl; }
void POSSIBLE(bool a){ cout<<(a?"POSSIBLE":"IMPOSSIBLE")<<endl; }
#define FOR_R(i, n) for (ll i = (ll)(n)-1; (i) >= 0; --(i))
template<class T>auto min(const T& a){ return *min_element(all(a)); }
//template<class T>auto max(const T& a){ return *max_element(all(a)); }
template<class T,class F>void print(pair<T,F> a){cout<<a.fi<<" "<<a.se<<endl;}
template<class T>bool chmax(T &a,const T b) { if (a<b) { a=b; return 1; } return 0;}
template<class T>bool chmin(T &a,const T b) { if (b<a) { a=b; return 1; } return 0;}
template<class T> void ifmin(T t,T u){if(t>u){cout<<-1<<endl;}else{cout<<t<<endl;}}
template<class T> void ifmax(T t,T u){if(t>u){cout<<-1<<endl;}else{cout<<t<<endl;}}
ll fastgcd(ll u,ll v){ll shl=0;while(u&&v&&u!=v){bool eu=!(u&1);bool ev=!(v&1);if(eu&&ev){++shl;u>>=1;v>>=1;}else if(eu&&!ev){u>>=1;}else if(!eu&&ev){v>>=1;}else if(u>=v){u=(u-v)>>1;}else{ll tmp=u;u=(v-u)>>1;v=tmp;}}return !u?v<<shl:u<<shl;}
ll modPow(ll a, ll n, ll mod) { if(mod==1) return 0;ll ret = 1; ll p = a % mod; while (n) { if (n & 1) ret = ret * p % mod; p = p * p % mod; n >>= 1; } return ret; }
vector<ll> divisor(ll x){ vector<ll> ans; for(ll i = 1; i * i <= x; i++){ if(x % i == 0) {ans.push_back(i); if(i*i!=x){ ans.push_back(x / ans[i]);}}}sor(ans); return ans; }
ll pop(ll x){return __builtin_popcountll(x);}
ll poplong(ll x){ll y=-1;while(x){x/=2;y++;}return y;}
P hyou(P a){ll x=fastgcd(abs(a.fi),abs(a.se));a.fi/=x;a.se/=x;if(a.se<0){a.fi*=-1;a.se*=-1;}return a;}
P Pplus(P a,P b){ return hyou({a.fi*b.se+b.fi*a.se,a.se*b.se});}
P Ptimes(P a,ll b){ return hyou({a.fi*b,a.se});}
P Ptimes(P a,P b){ return hyou({a.fi*b.fi,a.se*b.se});}
P Pminus(P a,P b){ return hyou({a.fi*b.se-b.fi*a.se,a.se*b.se});}
P Pgyaku(P a){ return hyou({a.se,a.fi});}
void cincout(){
ios::sync_with_stdio(false);
std::cin.tie(nullptr);
cout<< fixed << setprecision(15);
}
int main(){
cincout();
//monge だけど復元が分からん...
ll n,k;
cin>>n>>k;
vector<ll> a(n),b(n);
vcin(a);
vcin(b);
/*
for(int i=0;i<n;i++){
a[i]=rand()%10+1;
b[i]=rand()%10+1;
}
*/
vector<ll> c(n+1);
for(int i=1;i<=n;i++) c[i]=c[i-1]+a[i-1];
multiset<ll> x0,x1;
ll sum=0;
ll l=0,r=-1;
auto cost = [&](ll l,ll r) -> ll{
if(r-l+1<k) return -inf+1;
return sum-(c[r+1]-c[l]);
};
auto add = [&](int i) -> void{
x1.insert(b[i]);
sum+=b[i];
if(x1.size()>k){
auto itr=x1.begin();
sum-=(*itr);
x0.insert(*itr);
x1.erase(itr);
}
};
auto erase = [&](int i) -> void{
if((*x1.begin())<=b[i]){
sum-=b[i];
auto itr=x1.lower_bound(b[i]);
x1.erase(itr);
if(x0.size()){
auto itr2=x0.end();
itr2--;
sum+=(*itr2);
x1.insert(*itr2);
x0.erase(itr2);
}
}
else{
auto itr=x0.lower_bound(b[i]);
x0.erase(itr);
}
};
auto go = [&](int x,int y) -> void {
while(x<l){
l--;
add(l);
}
while(r<y){
r++;
add(r);
}
while(x>l){
erase(l);
l++;
}
while(r>y){
erase(r);
r--;
}
};
//[0,n-1] * [0,n-1]
auto solve = [&](auto& self,ll a,ll b,ll c,ll d) -> ll {
// cerr<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
//[a,b] * [c,d] の最小値
if(a>b) return -inf;
if(a==b){
ll ret=-inf;
for(int j=c;j<=d;j++){
if(a<=j) go(a,j);
chmax(ret,cost(a,j));
}
return ret;
}
ll m=(a+b)/2;
ll id=-1,val=-inf;
for(int j=c;j<=d;j++){
if(m<=j) go(m,j);
if(chmax(val,cost(m,j))) id=j;
}
return max(max(self(self,a,m-1,c,id),self(self,m+1,b,id,d)),val);
};
cout<<solve(solve,0,n-1,0,n-1)<<endl;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 5
Acceptable Answer
time: 0ms
memory: 3788kb
input:
5 3 3 5 2 3 6 2 1 5 2 3
output:
-1
result:
points 0.50 first question correct
Test #2:
score: 5
Acceptable Answer
time: 1ms
memory: 3600kb
input:
200 40 81 50 87 91 54 1 77 68 19 84 28 81 45 64 4 13 25 89 12808135 86 40 73 47 18 82 79 11 96 16 34 80 36 8 5 60 76 86 84 36 37 96 55 68 12807879 51 89 57 30 100 11 44 19 96 32 9 68 41 12808009 5 58 12807939 92 68 67 78 32 57 49 71 92 64 35 89 76 81 36 6 6 53 31 85 79 5 85 1 91 17 37 25 91 54 29 47...
output:
12807909
result:
points 0.50 first question correct
Test #3:
score: 5
Acceptable Answer
time: 1ms
memory: 3612kb
input:
200 41 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...
output:
81
result:
points 0.50 first question correct
Test #4:
score: 5
Acceptable Answer
time: 0ms
memory: 3536kb
input:
5 2 1 6 1 5 2 4 1 6 2 4
output:
2
result:
points 0.50 first question correct
Test #5:
score: 5
Acceptable Answer
time: 0ms
memory: 3616kb
input:
7 3 5 1 1 1 1 1 5 1 1 1 1 1 1 1
output:
0
result:
points 0.50 first question correct
Test #6:
score: 5
Acceptable Answer
time: 1ms
memory: 3556kb
input:
200 100 142654162 64490063 513345044 219974445 84112685 711899650 33120992 176027514 802361343 2414916 941549932 786288853 94273368 829024564 352947721 355629698 903479794 326383768 720620114 271371691 786997028 138881060 711795174 536092340 290169962 938690480 710723910 231424065 468554799 44519400...
output:
-2461503019
result:
points 0.50 first question correct
Test #7:
score: 0
Wrong Answer
time: 0ms
memory: 3536kb
input:
200 199 392097713 864387769 236976435 989793783 997090826 107508554 219275702 329027733 181833481 896113693 791833669 652173288 689106070 645879177 369017772 739620594 465647432 361649152 704125516 383540722 576805937 293955811 610328615 867720036 757212267 369257718 556736284 696523840 140108544 86...
output:
-3999999999999999999
result:
wrong answer wrong answer on the first question
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 5
Acceptable Answer
Test #30:
score: 5
Acceptable Answer
time: 0ms
memory: 3592kb
input:
5 2 1 6 1 5 2 4 1 6 2 4
output:
2
result:
points 0.50 first question correct
Test #31:
score: 5
Acceptable Answer
time: 708ms
memory: 14940kb
input:
250000 2 18 35 29 35 18 610084694 18 35 29 35 18 448867144 18 35 29 35 18 971272498 18 35 29 35 18 890430190 18 35 29 35 18 655685684 18 35 29 35 18 234608237 18 35 29 35 18 894586749 18 35 29 35 18 442195168 18 35 29 35 18 341564617 18 35 29 35 18 985069087 18 35 29 35 18 967546483 18 35 29 35 18 5...
output:
33391
result:
points 0.50 first question correct
Test #32:
score: 5
Acceptable Answer
time: 447ms
memory: 15112kb
input:
250000 2 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1...
output:
7
result:
points 0.50 first question correct
Test #33:
score: 5
Acceptable Answer
time: 696ms
memory: 14980kb
input:
250000 2 296095839 339724373 965973329 196477261 344160630 150756369 190174474 470255817 512937857 249988555 752486830 474766981 101796731 563280029 312834955 720810905 619379033 324109033 874523062 841728664 19232878 363302361 436792441 201047597 165902785 728305993 892140052 423772401 255303346 35...
output:
-3196894
result:
points 0.50 first question correct
Test #34:
score: 5
Acceptable Answer
time: 911ms
memory: 17848kb
input:
250000 2 376 997 143 229 156 268 727 677 546 358 90 640 60 769 719 690 109 34 216 522 884 609 280 765 605 31 666 831 484 182 600 682 689 103 409 421 455 587 971 442 575 402 788 246 270 255 158 582 281 259 935 578 210 439 432 480 86 273 323 929 326 699 379 298 880 163 169 125 773 857 654 902 177 163 ...
output:
127670228
result:
points 0.50 first question correct
Test #35:
score: 5
Acceptable Answer
time: 866ms
memory: 14924kb
input:
250000 2 453 396 898 114 712 889 968 486 308 612 455 958 517 330 506 470 161 423 120 110 588 176 325 304 383 578 934 976 119 779 286 184 984 575 621 99 277 113 43 681 404 397 390 94 939 405 958 170 542 935 610 747 164 245 292 315 438 477 45 62 998 706 231 474 556 181 27 385 442 613 295 283 985 82 12...
output:
100000000
result:
points 0.50 first question correct
Test #36:
score: 5
Acceptable Answer
time: 766ms
memory: 14912kb
input:
250000 2 301 561 538 318 354 945 677 821 949 896 280 109 987 299 572 657 669 85 613 459 859 434 188 160 481 989 838 383 851 560 479 712 880 696 362 755 229 159 220 650 527 237 690 314 415 808 998 637 643 844 980 619 33 949 433 710 761 934 469 429 209 492 566 846 876 371 619 930 335 380 357 611 528 9...
output:
100000000
result:
points 0.50 first question correct
Test #37:
score: 5
Acceptable Answer
time: 1827ms
memory: 20732kb
input:
250000 2 4 42 73 93 7 35 94 94 51 89 37 88 62 82 4 50 17 25 41 75 79 42 65 84 85 76 8 5 53 61 30 96 5 12 73 89 80 93 37 59 13 7 17 86 81 28 53 37 35 53 84 82 50 43 19 57 46 58 98 15 24 44 14 28 16 32 100 29 93 84 66 74 67 44 51 53 30 39 40 39 31 77 96 82 9 95 27 51 99 17 15 65 24 38 26 66 64 52 82 4...
output:
75103735
result:
points 0.50 first question correct
Test #38:
score: 5
Acceptable Answer
time: 729ms
memory: 14920kb
input:
250000 2 6 179605521 98 560489812 78 428728290 46 394467511 13 104828723 85 556581057 82 276557631 45 216804298 81 484579962 48 632665627 52 548050190 97 173641903 3 724257667 10 791131062 34 874026470 70 513926122 72 857542636 24 670114142 18 242541410 47 380039814 76 284051523 15 683070321 35 3191...
output:
16168237
result:
points 0.50 first question correct
Test #39:
score: 5
Acceptable Answer
time: 687ms
memory: 15116kb
input:
250000 2 3 969910390 5 792 2 983 1 729 3 890 1 847 3 899 1 829 1 751 2 899 1 764 4 834 4 713 2 886 4 973 5 867 4 869 4 823 1 806 1 851 3 882 4 972 3 954 2 931 5 827 3 954 1 887 3 945 1 926 3 747 1 731 3 713 3 723 2 963 5 854 3 950 5 751 2 830 4 822 2 954 2 907 1 898 2 795 3 816 4 860 4 900 2 879 4 7...
output:
131
result:
points 0.50 first question correct
Subtask #4:
score: 0
Wrong Answer
Dependency #3:
50%
Acceptable Answer
Test #40:
score: 12.5
Acceptable Answer
time: 0ms
memory: 3532kb
input:
5 2 1 6 1 5 2 4 1 6 2 4
output:
2
result:
points 0.50 first question correct
Test #41:
score: 12.5
Acceptable Answer
time: 699ms
memory: 15056kb
input:
250000 2 18 35 29 35 18 610084694 18 35 29 35 18 448867144 18 35 29 35 18 971272498 18 35 29 35 18 890430190 18 35 29 35 18 655685684 18 35 29 35 18 234608237 18 35 29 35 18 894586749 18 35 29 35 18 442195168 18 35 29 35 18 341564617 18 35 29 35 18 985069087 18 35 29 35 18 967546483 18 35 29 35 18 5...
output:
33391
result:
points 0.50 first question correct
Test #42:
score: 12.5
Acceptable Answer
time: 0ms
memory: 3536kb
input:
5 3 3 5 2 3 6 2 1 5 2 3
output:
-1
result:
points 0.50 first question correct
Test #43:
score: 12.5
Acceptable Answer
time: 0ms
memory: 3624kb
input:
7 3 5 1 1 1 1 1 5 1 1 1 1 1 1 1
output:
0
result:
points 0.50 first question correct
Test #44:
score: 12.5
Acceptable Answer
time: 0ms
memory: 3552kb
input:
200 100 142654162 64490063 513345044 219974445 84112685 711899650 33120992 176027514 802361343 2414916 941549932 786288853 94273368 829024564 352947721 355629698 903479794 326383768 720620114 271371691 786997028 138881060 711795174 536092340 290169962 938690480 710723910 231424065 468554799 44519400...
output:
-2461503019
result:
points 0.50 first question correct
Test #45:
score: 0
Wrong Answer
time: 0ms
memory: 3560kb
input:
200 199 392097713 864387769 236976435 989793783 997090826 107508554 219275702 329027733 181833481 896113693 791833669 652173288 689106070 645879177 369017772 739620594 465647432 361649152 704125516 383540722 576805937 293955811 610328615 867720036 757212267 369257718 556736284 696523840 140108544 86...
output:
-3999999999999999999
result:
wrong answer wrong answer on the first question
Subtask #5:
score: 0
Skipped
Dependency #1:
0%