QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#569646 | #9315. Rainbow Bracket Sequence | wcdr | RE | 1ms | 3868kb | C++17 | 4.4kb | 2024-09-17 03:04:55 | 2024-09-17 03:04:56 |
Judging History
answer
#include<random>
#include<iostream>
#include<iomanip>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstdio>
#include<cstdlib>
#include<climits>
//#define NDEBUG
#include<cassert>
#include<cstring>
#include<complex>
#include<algorithm>
#include<set>
#include<map>
#include<stack>
#include<queue>
#include<vector>
#include<bitset>
//#define LL __int128
#define LL long long
#define ULL unsigned LL
#define uint unsigned int
//#define int LL
//#define double long double
#define mkp make_pair
#define par pair<int,int>
#define psb push_back
#define epb emplace_back
#define f(x) ((x).first)
#define s(x) ((x).second)
using namespace std;
#define Lbt(x) ((x)&(-(x)))
#define Swap(x,y) (x^=y^=x^=y)
const int Mxxx=1e5;
inline char gc()
{
// return getchar();
static char buf[Mxxx],*p1=buf,*p2=buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,1,Mxxx,stdin),p1==p2)?EOF:*p1++;
}
inline char pc(char ch,bool fl=false)
{
// return fl?0:putchar(ch),0;
static char buf[Mxxx],*p1=buf,*p2=buf+Mxxx;
return (fl||((*p1++=ch)&&p1==p2))&&(fwrite(buf,1,p1-buf,stdout),p1=buf),0;
}
#define output pc('!',true)
inline int read()
{
char ch=gc();
int gans=0,gflag=0;
for(;ch<'0'||'9'<ch;gflag|=ch=='-',ch=gc());
for(;'0'<=ch&&ch<='9';gans=(gans<<1)+(gans<<3)+(ch^48),ch=gc());
return gflag?-gans:gans;
}
template<typename T>
inline char read(T&gans)
{
char ch=gc();
int gflag=0;gans=0;
for(;ch<'0'||'9'<ch;gflag|=ch=='-',ch=gc());
for(;'0'<=ch&&ch<='9';gans=(gans<<1)+(gans<<3)+(ch^48),ch=gc());
return gans=gflag?-gans:gans,ch;
}
template<typename T>
inline void write(T x)
{
if(x>9)write(x/10);
pc(x%10^48);
}
template<typename T>
inline void writenum(T x,char ch)
{
if(x<0)pc('-'),x=-x;
write(x);pc(ch);
}
inline void writechar(char x,char ch)
{
pc(x);pc(ch);
}
template<typename T>
inline T Max(T x,T y)
{
return x>y?x:y;
}
template<typename T>
inline T Min(T x,T y)
{
return x<y?x:y;
}
template<typename T>
inline T Abs(T x)
{
return x<0?-x:x;
}
template<typename T>
inline void ckmx(T&x,T y)
{
x=Max(x,y);
}
template<typename T>
inline void ckmn(T&x,T y)
{
x=Min(x,y);
}
namespace Wll
{
const int Mx=5e3,M=5e4;
int tot,cnt,h[Mx+5],nxt[(M<<1)+5],tto[(M<<1)+5],val[(M<<1)+5],cst[(M<<1)+5];
inline void Pre(int x)
{
tot=x,cnt=1;for(int i=1;i<=tot;i++)h[i]=0;
}
inline void ade(int x,int y,int v,int c)
{
nxt[++cnt]=h[x];
tto[h[x]=cnt]=y;
val[cnt]=v;cst[cnt]=c;
}
inline void Ade(int x,int y,int v,int c)
{
ade(x,y,v,c);ade(y,x,0,-c);
}
int fst[Mx+5];
inline void Pre(){for(int i=1;i<=tot;i++)fst[i]=h[i];}
deque<int>q;int ds[Mx+5];int vis[Mx+5];LL dst[Mx+5];
inline int Spfa(int s,int t)
{
int i,x,to;
for(i=1;i<=tot;i++)h[i]=fst[i],ds[i]=INT_MAX,dst[i]=LLONG_MAX;
for(vis[s]=1,ds[s]=dst[s]=0,q.psb(s);!q.empty();)
{
x=q.front();q.pop_front();vis[x]=0;
for(i=h[x];i;i=nxt[i])if(val[i]&&(dst[to=tto[i]]>dst[x]+cst[i]))
{
dst[to]=dst[x]+cst[i];ds[to]=ds[x]+1;
if(!vis[to])
{
vis[to]=1;if(!q.empty()&&dst[to]<dst[q.front()])q.push_front(to);else q.psb(to);
}
}
}return ds[t]^INT_MAX;
}
inline int DFS(int x,int y,int z)
{
if(x==z)return y;
int k,to,sm=0;
for(int&i=h[x];i;i=nxt[i])if(val[i]&&ds[to=tto[i]]==ds[x]+1&&dst[to]==dst[x]+cst[i])
{
if(!(k=DFS(to,Min(y,val[i]),z))){ds[to]=INT_MAX;continue;}
val[i]-=k;val[i^1]+=k;if(!(sm+=k,y-=k))return sm;
}return sm;
}
LL sum;
inline int McMf(int s,int t)
{
int k,sm=0;for(Pre();Spfa(s,t);sm+=(k=DFS(s,INT_MAX,t)),sum+=k*dst[t]);return sm;
}
}
int TT;
const int Mx=1e2;
int n,m,nn,S,T,c[Mx+5],v[Mx+5],lmt[Mx+5],tot[Mx+5];LL sum;
signed main()
{
#ifndef ONLINE_JUDGE
freopen("_.in","r",stdin);
// freopen("_.out","w",stdout);
#endif
int i,f;
for(TT=read();TT;TT--)
{
n=read();m=read();nn=n<<1;sum=Wll::sum=0;
S=nn+m+1;Wll::Pre(T=S+1);
for(i=1;i<=m;i++)lmt[i]=read(),tot[i]=0;
for(i=1;i<=nn;i++)tot[c[i]=read()]++;
for(i=1;i<=nn;i++)sum+=(v[i]=read());
for(f=i=1;i<=m;i++)if(lmt[i]>tot[i])f=0;
for(i=1;i<=m;i++)Wll::Ade(S,i,tot[i]-lmt[i],0);
for(i=1;i<=nn;i++)Wll::Ade(c[i],m+i,1,v[i]);
for(i=1;i<nn;i++)Wll::Ade(m+i+1,m+i,n,0);
for(i=2;i<=nn;i+=2)Wll::Ade(m+i,T,1,0);
if(!f||Wll::McMf(S,T)<n)writenum(-1,10);
else writenum(sum-Wll::sum,10);
}
return output;
}
/*
2
3 2
1 2
1 2 2 2 1 2
3 1 4 2 2 1
3 2
2 2
1 2 2 2 1 2
3 1 4 2 2 1
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3564kb
input:
2 3 2 1 2 1 2 2 2 1 2 3 1 4 2 2 1 3 2 2 2 1 2 2 2 1 2 3 1 4 2 2 1
output:
9 -1
result:
ok 2 number(s): "9 -1"
Test #2:
score: 0
Accepted
time: 1ms
memory: 3596kb
input:
50 8 6 0 2 2 0 3 1 3 5 1 1 5 3 5 2 3 2 2 1 2 2 4 6 998133227 879226371 59632864 356493387 62611196 827258251 296576565 204244054 812713672 780267148 614679390 447700005 102067050 544546349 116002772 761999375 1 1 1 1 1 343766215 374461155 3 1 2 1 1 1 1 1 1 796323508 303640854 701432076 853325162 610...
output:
-1 343766215 2351080746 3426965219 -1 -1 1351561190 2539318868 1013080942 4656646546 -1 -1 2231197660 2719131728 3983627641 4712174168 -1 1046749330 6115214757 3920988203 -1 3902088946 -1 2566553992 5268471900 5977120748 7505501534 -1 5054275471 1467678317 883992368 1044562986 -1 4024634503 -1 14472...
result:
ok 50 numbers
Test #3:
score: 0
Accepted
time: 0ms
memory: 3592kb
input:
25 20 4 0 0 0 1 2 2 2 2 4 4 4 1 2 2 2 1 3 4 1 3 4 4 3 1 3 2 1 4 2 2 4 1 2 2 3 3 4 1 3 1 4 1 2 1 569363376 821862673 89663213 862407789 442940149 823902948 903631686 838830270 645793571 397350060 806574247 373166844 448916252 435880456 969841293 998227951 276194969 654967687 396909705 696186514 16992...
output:
16418796680 10558213381 -1 1502390329 8534183652 13571062458 8007768610 12656453595 3378659874 8410746077 12352187024 5743130624 5952844559 2285684441 4242613506 836778846 4838639494 8586807028 8535185475 8089358175 5627473863 14399529671 -1 11483578919 4919631490
result:
ok 25 numbers
Test #4:
score: 0
Accepted
time: 1ms
memory: 3656kb
input:
83 6 5 1 0 1 1 0 2 4 4 5 3 2 4 5 3 3 3 3 597659626 649040970 33207011 223207847 960704874 418600362 658594226 417168695 767527655 622701955 867509363 235369723 6 2 0 0 1 1 2 2 2 2 1 1 1 2 2 1 405752009 976807343 267881918 26193206 947664189 555835767 587219021 231445627 755417826 541362608 846129246...
output:
-1 4518989634 3550182642 4529809699 4042429510 4145000717 -1 3635082691 -1 -1 3476472607 3732904849 3631909633 4479534795 3586223781 3380039505 2946284506 3615784040 -1 -1 -1 4940773463 3195952843 4073152216 4177883697 3398540362 3578975642 4308395607 -1 3078447178 3069102942 3135294474 5256676097 -...
result:
ok 83 numbers
Test #5:
score: 0
Accepted
time: 1ms
memory: 3804kb
input:
71 7 4 0 1 0 4 3 4 1 1 4 4 2 4 1 1 1 4 4 4 580852652 638740575 585501313 439482552 637837864 335796176 447934224 259084035 778210267 469729886 908657968 750731414 508195022 701461051 7 6 0 1 1 0 0 1 3 2 4 3 5 3 1 1 5 4 3 1 6 1 198076752 601490845 123074777 392892100 148645775 938575995 355185760 558...
output:
4300550873 4711297430 -1 4468072610 4652801753 4661069155 5134971483 4367382968 4983190626 3065242360 -1 -1 4834379200 4355918462 -1 3592789392 3058869770 -1 3825913893 -1 4785350296 -1 4759459279 5342744097 4716826205 4873131448 5329193547 4821943641 3777324532 4115469556 -1 -1 -1 5061832610 520025...
result:
ok 71 numbers
Test #6:
score: 0
Accepted
time: 1ms
memory: 3868kb
input:
62 8 3 0 2 0 3 3 3 1 1 1 3 2 1 2 2 1 1 2 1 1 222368048 906033133 8623893 807375696 461796409 362923880 194114590 733391789 137574156 670510137 237249112 673135534 595041001 875171159 112263159 649035661 8 6 2 1 0 0 0 0 3 5 2 2 1 3 3 3 6 4 5 5 1 2 5 4 28938721 556768926 23366504 887715271 624732370 3...
output:
5349781905 4269103485 4384563617 5171071054 4895598910 4667548481 -1 4157414045 -1 3927911942 -1 5127481462 5534185037 6071114899 4515756162 5965926191 -1 5617252300 5920664214 5826871785 5730385164 5947153970 5426721265 5820040011 5677486289 5193366586 6129016249 5739984903 5993708705 5520537026 54...
result:
ok 62 numbers
Test #7:
score: 0
Accepted
time: 0ms
memory: 3856kb
input:
55 9 9 2 2 0 0 0 0 0 2 0 6 2 3 9 5 4 2 4 1 1 4 7 1 4 5 8 6 2 907208811 754008138 161288468 562810007 149992530 997421612 144383292 832081887 228097972 446662965 77258752 375836694 743196568 527846851 580675905 438791943 977960026 39388076 9 6 0 1 0 0 0 0 5 3 3 4 3 6 5 4 6 5 2 5 6 5 5 1 2 2 861149655...
output:
-1 5600105080 -1 7505123959 7048625501 4827971490 -1 7031642652 -1 6001013535 -1 -1 6353971413 5896906204 3896102243 6540293759 5621534278 6599175212 -1 6721932183 6965230904 5681597954 8167088460 5632185532 -1 4750725522 6285591217 6320310809 6388859035 4686377743 5728065266 5503485599 6260485694 6...
result:
ok 55 numbers
Test #8:
score: 0
Accepted
time: 0ms
memory: 3656kb
input:
50 10 8 0 0 1 0 0 0 1 0 1 6 7 7 2 2 1 1 3 1 1 3 7 5 4 1 8 4 7 2 535526356 404334728 653535984 998133227 879226371 59632864 356493387 62611196 827258251 296576565 204244054 812713672 780267148 614679390 447700005 102067050 544546349 116002772 761999375 546951131 10 5 0 0 1 1 0 4 5 5 3 5 1 3 3 5 1 1 5...
output:
7267674502 6912276073 -1 -1 8427372986 -1 7057744914 6452405474 7564223610 7193916415 -1 5496837745 6671753900 7137256654 6574886409 7690341704 7357840728 8164970807 7172570060 6778745196 7668051341 6936083804 7305907682 7631088969 5717910532 6156605721 6923807013 -1 8207034493 -1 7418567782 6923770...
result:
ok 50 numbers
Test #9:
score: 0
Accepted
time: 0ms
memory: 3656kb
input:
33 15 1 3 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 985238289 459697693 970988548 370603489 160471107 36299429 908579552 62669495 649913003 478356148 805843616 136680216 158560673 261854484 857048420 32835236 430050478 327696352 417017537 857880465 568473106 750242567 865990206 869...
output:
11069294141 9757752433 10517453854 10675484732 9851733289 11571987501 10382709663 11006679388 9835650684 10482963923 10190220836 11857634113 -1 -1 10077553084 9896319722 11821564137 11828952526 9761971634 9940132164 -1 -1 9227926173 13037241524 11565236192 11800412693 12028054248 11502933189 9949512...
result:
ok 33 numbers
Test #10:
score: 0
Accepted
time: 1ms
memory: 3632kb
input:
25 20 20 3 0 0 1 0 0 0 0 0 3 0 0 1 2 0 1 0 2 2 4 12 19 17 19 14 5 16 6 6 20 13 2 14 7 19 16 17 7 13 16 9 6 5 16 13 13 9 9 8 6 10 11 20 7 4 12 16 13 11 9 654967687 396909705 696186514 169923749 8142639 81507010 67587218 966803487 991350519 551259762 962079443 918589 708293964 213990501 934701547 8468...
output:
-1 14023274173 12588200963 13988453624 15030243485 13076569052 -1 -1 13842307153 -1 12832546330 14189266584 16492323989 16163650514 14012035305 -1 -1 -1 13929001098 13862644942 -1 15246522629 -1 13299413733 -1
result:
ok 25 numbers
Test #11:
score: -100
Runtime Error
input:
5 100 15 3 5 8 6 7 7 5 3 2 6 5 3 11 4 8 8 13 6 13 2 3 1 8 15 12 13 14 10 12 4 4 8 8 9 2 15 3 4 10 8 5 2 5 11 11 2 13 10 7 12 11 4 2 9 4 15 5 15 13 9 6 7 6 2 12 6 1 6 13 9 7 2 2 11 11 10 1 3 12 8 7 2 13 2 5 3 13 5 11 5 2 3 1 14 7 11 5 11 2 14 2 14 6 4 6 3 8 14 4 8 3 14 10 7 8 3 6 3 10 4 15 1 7 7 15 7...