QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#469108 | #8732. Zečevi | honglan0301 | 0 | 476ms | 55524kb | C++17 | 7.0kb | 2024-07-09 14:30:57 | 2024-07-09 14:30:58 |
Judging History
answer
/*
author: honglan0301
Sexy_goodier _ xiaoqing
*/
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cctype>
#include <queue>
#include <map>
#include <unordered_map>
#include <cstdlib>
#include <ctime>
#include <vector>
#include <cmath>
#include <random>
#include <set>
#include <bitset>
#include <assert.h>
using namespace std;
//namespace Fread{const int SIZE=1<<20;char buf[SIZE],*S,*T;inline char getchar(){if(S==T){T=(S=buf)+fread(buf,1,SIZE,stdin);if(S==T)return'\n';}return*S++;}}using namespace Fread;namespace Fwrite{const int SIZE=1<<20;char buf[SIZE],*S=buf,*T=buf+SIZE;inline void flush(){fwrite(buf,1,S-buf,stdout);S=buf;}inline void putchar(char c){*S++=c;if(S==T)flush();}struct NTR{~NTR(){flush();}}ztr;}using namespace Fwrite;
//#define getchar Fread::getchar
//#define putchar Fwrite::putchar
namespace Fastio{struct Reader{template<typename T>Reader&operator>>(T&x){x=0;short f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f*=-1;c=getchar();}while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+(c^48),c=getchar();x*=f;return*this;}Reader&operator>>(double&x){x=0;double t=0;short f=1,s=0;char c=getchar();while((c<'0'||c>'9')&&c!='.'){if(c=='-')f*=-1;c=getchar();}while(c>='0'&&c<='9'&&c!='.')x=x*10+(c^48),c=getchar();if(c=='.')c=getchar();else{x*=f;return*this;}while(c>='0'&&c<='9')t=t*10+(c^48),s++,c=getchar();while(s--)t/=10.0;x=(x+t)*f;return*this;}Reader&operator>>(long double&x){x=0;long double t=0;short f=1,s=0;char c=getchar();while((c<'0'||c>'9')&&c!='.'){if(c=='-')f*=-1;c=getchar();}while(c>='0'&&c<='9'&&c!='.')x=x*10+(c^48),c=getchar();if(c=='.')c=getchar();else{x*=f;return*this;}while(c>='0'&&c<='9')t=t*10+(c^48),s++,c=getchar();while(s--)t/=10.0;x=(x+t)*f;return*this;}Reader&operator>>(__float128&x){x=0;__float128 t=0;short f=1,s=0;char c=getchar();while((c<'0'||c>'9')&&c!='.'){if(c=='-')f*=-1;c=getchar();}while(c>='0'&&c<='9'&&c!='.')x=x*10+(c^48),c=getchar();if(c=='.')c=getchar();else{x*=f;return*this;}while(c>='0'&&c<='9')t=t*10+(c^48),s++,c=getchar();while(s--)t/=10.0;x=(x+t)*f;return*this;}Reader&operator>>(char&c){c=getchar();while(c==' '||c=='\n'||c=='\r')c=getchar();return*this;}Reader&operator>>(char*str){int len=0;char c=getchar();while(c==' '||c=='\n'||c=='\r')c=getchar();while(c!=' '&&c!='\n'&&c!='\r')str[len++]=c,c=getchar();str[len]='\0';return*this;}Reader&operator>>(string&str){str.clear();char c=getchar();while(c==' '||c=='\n'||c=='\r')c=getchar();while(c!=' '&&c!='\n'&&c!='\r')str.push_back(c),c=getchar();return*this;}Reader(){}}cin;const char endl='\n';struct Writer{const int Setprecision=6;typedef int mxdouble;template<typename T>Writer&operator<<(T x){if(x==0){putchar('0');return*this;}if(x<0)putchar('-'),x=-x;static short sta[40];short top=0;while(x>0)sta[++top]=x%10,x/=10;while(top>0)putchar(sta[top]+'0'),top--;return*this;}Writer&operator<<(double x){if(x<0)putchar('-'),x=-x;mxdouble _=x;x-=(double)_;static short sta[40];short top=0;while(_>0)sta[++top]=_%10,_/=10;if(top==0)putchar('0');while(top>0)putchar(sta[top]+'0'),top--;putchar('.');for(int i=0;i<Setprecision;i++)x*=10;_=x;while(_>0)sta[++top]=_%10,_/=10;for(int i=0;i<Setprecision-top;i++)putchar('0');while(top>0)putchar(sta[top]+'0'),top--;return*this;}Writer&operator<<(long double x){if(x<0)putchar('-'),x=-x;mxdouble _=x;x-=(long double)_;static short sta[40];short top=0;while(_>0)sta[++top]=_%10,_/=10;if(top==0)putchar('0');while(top>0)putchar(sta[top]+'0'),top--;putchar('.');for(int i=0;i<Setprecision;i++)x*=10;_=x;while(_>0)sta[++top]=_%10,_/=10;for(int i=0;i<Setprecision-top;i++)putchar('0');while(top>0)putchar(sta[top]+'0'),top--;return*this;}Writer&operator<<(__float128 x){if(x<0)putchar('-'),x=-x;mxdouble _=x;x-=(__float128)_;static short sta[40];short top=0;while(_>0)sta[++top]=_%10,_/=10;if(top==0)putchar('0');while(top>0)putchar(sta[top]+'0'),top--;putchar('.');for(int i=0;i<Setprecision;i++)x*=10;_=x;while(_>0)sta[++top]=_%10,_/=10;for(int i=0;i<Setprecision-top;i++)putchar('0');while(top>0)putchar(sta[top]+'0'),top--;return*this;}Writer&operator<<(char c){putchar(c);return*this;}Writer&operator<<(char*str){int cur=0;while(str[cur])putchar(str[cur++]);return*this;}Writer&operator<<(const char*str){int cur=0;while(str[cur])putchar(str[cur++]);return*this;}Writer&operator<<(string str){int st=0,ed=str.size();while(st<ed)putchar(str[st++]);return*this;}Writer(){}}cout;}using namespace Fastio;
#define cin Fastio::cin
#define cout Fastio::cout
#define endl Fastio::endl//;fflush(stdout)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define int long long
#define ll long long
#define ull unsigned long long
#define mod 998244353
#define G 3
#define Gi 332748118
mt19937 rnd(time(0));
mt19937_64 rndl(time(0));
int n,m,flag,lim=3000000000ll;
pair<int,int> x[100005],y[100005];
struct tree
{
int ls,rs,tag,len; ll sum;
}tree[10000005];
int cntd,rt;
#define ls(x) tree[x].ls
#define rs(x) tree[x].rs
#define l(x) tree[x].len
#define n(x) tree[x].sum
#define tg(x) tree[x].tag
#define md(x,y) ((x+y)>>1)
#define push_up(x) l(x)=l(ls(x))+l(rs(x)),n(x)=n(ls(x))+n(rs(x))
#define cz(k,p) tg(p)+=k,n(p)+=1ll*k*l(p)
void push_down(int p)
{
if(tg(p))
{
if(!ls(p)) ls(p)=++cntd,l(ls(p))=(l(p)+1)/2; cz(tg(p),ls(p));
if(!rs(p)) rs(p)=++cntd,l(rs(p))=l(p)/2; cz(tg(p),rs(p)); tg(p)=0;
}
}
void cza(int l,int r,int x,int y,int k,int &p)
{
if(!p) p=++cntd,l(p)=r-l+1; if(l>=x&&r<=y) return cz(k,p),void(); int mid=md(l,r); push_down(p);
if(mid>=x) cza(l,mid,x,y,k,ls(p)); if(mid<y) cza(mid+1,r,x,y,k,rs(p)); push_up(p);
}
void czf(int l,int r,int k,int p)
{
//cout<<"GGG "<<l<<" "<<r<<" "<<k<<endl;
if(l==r) return n(p)-=k,void(); int mid=md(l,r); push_down(p);
if(n(ls(p))<=k) czf(mid+1,r,k-n(ls(p)),rs(p)),ls(p)=0; else czf(l,mid,k,ls(p)); push_up(p);
}
int askm(int l,int r,int p)
{
if(l==r) return l; int mid=md(l,r); push_down(p);
if(n(ls(p))) return askm(l,mid,ls(p)); else return askm(mid+1,r,rs(p));
}
void ins(pair<int,int> xx,int k)
{
if(xx.se>=k) return;
//cout<<"INS: "<<xx.fi+xx.se<<" "<<xx.fi+k-1<<endl;
cza(0,lim,xx.fi+xx.se,xx.fi+k-1,1,rt);
}
void del(pair<int,int> xx,int k)
{
//cout<<"DEL: "<<xx.fi<<" "<<xx.se<<" "<<k<<endl;
//cout<<n(rt)<<" "<<askm(0,lim,rt)<<endl;
flag&=askm(0,lim,rt)>=xx.fi;
if(n(rt)<=xx.se) rt=0; else czf(0,lim,xx.se,rt);
}
void clr()
{
for(int i=1;i<=cntd;i++) ls(i)=rs(i)=n(i)=tg(i)=l(i)=0; cntd=rt=0;
}
int ck(int k)
{
int nzl=1,nzr=1; flag=1;
while(nzl<=n&&nzr<=m)
{
if(x[nzl].fi<y[nzr].fi) ins(x[nzl++],k);
else del(y[nzr++],k);
}
while(nzl<=n) ins(x[nzl++],k);
while(nzr<=m) del(y[nzr++],k);
flag&=askm(0,lim,rt)==lim; clr(); return flag;
}
signed main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>x[i].fi>>x[i].se;
for(int i=1;i<=m;i++) cin>>y[i].fi>>y[i].se;
sort(x+1,x+n+1); sort(y+1,y+m+1);
int l=0,r=0;
for(int i=1;i<=n;i++) r+=x[i].se;
for(int i=1;i<=m;i++) r+=y[i].se; r/=n;
//ck(7); return 0;
while(l<=r)
{
int mid=(l+r)>>1;
if(ck(mid)) l=mid+1; else r=mid-1;
}
cout<<r<<endl;
}
詳細信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 385ms
memory: 7900kb
input:
1 100000 25117044 970963458 373893849 968275175 426927003 756404237 402749243 884153855 655982073 231540010 925839527 380078009 580079136 593952762 505135862 82095067 52931312 190936477 921699044 178656266 22689680 495676031 439196655 96470058 508403382 453576184 728333782 206229498 227588452 887461...
output:
50071509267631
result:
wrong answer 1st numbers differ - expected: '48772599075036', found: '50071509267631'
Subtask #2:
score: 0
Wrong Answer
Test #11:
score: 12
Accepted
time: 59ms
memory: 55524kb
input:
100000 1 866301171 366511673 782130035 523593023 210159324 951803750 33819604 974027339 517904111 963671594 281974787 391051697 568097534 965085338 81004963 640086904 211218893 397278600 614725688 4366212 269152510 559992280 327491679 276555612 630131521 503842459 15556017 382637565 444080049 985512...
output:
1745
result:
ok 1 number(s): "1745"
Test #12:
score: 0
Accepted
time: 68ms
memory: 52728kb
input:
100000 1 602052974 747930871 526492952 570148581 533976658 194147542 178657958 99194566 225173261 577928477 516902495 724134685 601150433 924258430 567498378 534418876 488767427 577178596 272110248 850482707 76905239 32663753 295653369 667089720 95647198 469443114 260333259 658091403 516052242 82742...
output:
3011
result:
ok 1 number(s): "3011"
Test #13:
score: 0
Accepted
time: 66ms
memory: 52864kb
input:
100000 1 62539585 679422422 292493838 651257494 18409931 47903905 667787194 128774888 124839461 365507846 23418045 612484173 406280354 862649934 843234438 905245338 400001312 225717248 755168314 822417263 515758415 201237721 556110002 980912248 173338563 53323238 246379086 756633035 337266161 257609...
output:
1262
result:
ok 1 number(s): "1262"
Test #14:
score: 0
Accepted
time: 80ms
memory: 52208kb
input:
100000 1 574489065 743770763 211882181 288604464 129739889 284534337 331811875 391318315 37416063 608986445 534902036 696548051 268694357 19640591 239365234 576914400 10623890 81786245 557001779 226639658 154345580 731344529 250688026 757559211 25475054 357657388 584637384 652051354 153156878 784586...
output:
7737
result:
ok 1 number(s): "7737"
Test #15:
score: 0
Accepted
time: 74ms
memory: 52984kb
input:
100000 1 535171471 336381440 141773641 673998275 492414591 465321245 292245188 492728685 115925345 510014389 387848714 3853854 550043834 398983084 532785924 732477862 22347128 820766474 426048009 610755195 197776236 641908217 206935657 783564876 125621396 231399245 28736236 409897555 87143269 612743...
output:
9005
result:
ok 1 number(s): "9005"
Test #16:
score: 0
Accepted
time: 62ms
memory: 36888kb
input:
100000 1 933067308 728899586 933067307 281511775 933067306 46479519 933067305 629603498 933067304 513745053 933067303 195448498 933067302 839934969 933067301 749764127 933067300 177662462 933067299 311185829 933067298 67933481 933067297 103347335 933067296 298703387 933067295 868453813 933067294 616...
output:
3899
result:
ok 1 number(s): "3899"
Test #17:
score: 0
Accepted
time: 67ms
memory: 37008kb
input:
100000 1 506382737 329612248 506382736 801627680 506382735 316738091 506382734 681410533 506382733 529449205 506382732 827584154 506382731 317177712 506382730 926503010 506382729 684230820 506382728 480953186 506382727 731683737 506382726 145817323 506382725 360514181 506382724 698908723 506382723 7...
output:
2895
result:
ok 1 number(s): "2895"
Test #18:
score: 0
Accepted
time: 66ms
memory: 36740kb
input:
100000 1 877792105 98377575 877792104 179182144 877792103 161948562 877792102 152474351 877792101 542583167 877792100 142774416 877792099 396779746 877792098 957503478 877792097 669500037 877792096 969281133 877792095 565566533 877792094 425097559 877792093 174648328 877792092 18084987 877792091 422...
output:
5070
result:
ok 1 number(s): "5070"
Test #19:
score: 0
Accepted
time: 69ms
memory: 34992kb
input:
100000 1 825085252 529127478 825085251 396026798 825085250 24693573 825085249 545809975 825085248 194420230 825085247 543957886 825085246 650476290 825085245 405647119 825085244 306150957 825085243 371524357 825085242 376087124 825085241 235930314 825085240 549879890 825085239 570607548 825085238 25...
output:
6544
result:
ok 1 number(s): "6544"
Test #20:
score: 0
Accepted
time: 62ms
memory: 34820kb
input:
100000 1 977073650 470745336 977073649 122977908 977073648 753047720 977073647 251904203 977073646 121800701 977073645 280875129 977073644 144615133 977073643 144968752 977073642 697554749 977073641 39082506 977073640 764169759 977073639 729466800 977073638 405829723 977073637 945950833 977073636 45...
output:
28463
result:
ok 1 number(s): "28463"
Test #21:
score: -12
Wrong Answer
time: 476ms
memory: 12352kb
input:
100000 1 975215810 6 975215809 9 975215808 6 975215807 12 975215806 10 975215805 9 975215804 15 975215803 15 975215802 12 975215801 20 975215800 12 975215799 22 975215798 19 975215797 20 975215796 23 975215795 25 975215794 19 975215793 27 975215792 29 975215791 30 975215790 22 975215789 30 975215788...
output:
59689
result:
wrong answer 1st numbers differ - expected: '44014', found: '59689'
Subtask #3:
score: 0
Wrong Answer
Test #26:
score: 26
Accepted
time: 4ms
memory: 6504kb
input:
1000 1000 98203901 1327928 90291962 1715530 73190581 1953419 30626944 1111081 19861765 1648083 378531325 1847131 32338803 1135925 213019894 1754207 104073495 1236818 153162191 1775836 283503659 1577207 370480039 1457117 11989599 1688477 8779089 1115475 25334382 1551917 102065341 1825040 154967698 15...
output:
1011589
result:
ok 1 number(s): "1011589"
Test #27:
score: 0
Accepted
time: 0ms
memory: 6136kb
input:
330 990 373134326 4 701492560 7 746268679 7 776119421 4 895522381 4 746268655 4 805970167 4 373134330 4 716417911 8 761194024 4 626865671 4 328358235 7 14925402 7 597014925 4 582089554 8 44776126 8 104477612 4 298507489 7 835820889 4 895522405 4 656716413 4 552238806 4 313432840 8 447761191 4 298507...
output:
9
result:
ok 1 number(s): "9"
Test #28:
score: 0
Accepted
time: 3ms
memory: 8068kb
input:
330 990 611940298 4 373134344 6 313432864 4 149253747 5 343283602 6 253731346 4 238805985 5 970149264 6 89552243 4 746268681 4 492537314 4 611940310 5 238805999 4 865671657 6 970149250 4 149253761 4 626865697 4 298507491 4 343283596 5 835820905 5 761194028 4 29850769 6 44776150 4 880597026 6 6716418...
output:
9
result:
ok 1 number(s): "9"
Test #29:
score: -26
Wrong Answer
time: 21ms
memory: 11540kb
input:
1000 1000 301268447 148470946 936559118 141508823 785790166 540015242 578859667 224889871 176466061 637491413 9490489 998352121 455152479 666386577 37725832 51483679 602037964 235495591 226213567 578127892 790576859 566555039 970586916 330226797 596431819 80912449 343462089 902326659 424623122 64254...
output:
497941182
result:
wrong answer 1st numbers differ - expected: '497728657', found: '497941182'
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #1:
0%