DIM B[320] 'グループの合計レート VAR K=CEIL(SQR(N)) グループの人数 VAR SUM 'F-Eまでのレートの合計 FOR I=0 TO N-1 INC B[I DIV K],R[I] NEXT I FOR I=1 TO M INPUT D,P,F,E,S INC B[D DIV K],P-R[D] SUM=0 WHILE F<E&&F MOD K SUM=SUM+R[F] F=F+1 WEND REPEAT E=E-1 SUM=SUM+R[E] UNTIL F>=E||(F MOD K)==0 WHILE E-F E=E-K SUM=SUM+B[E DIV K] WEND IF SUM>S THEN PRINT "Yes" ELSE PRINT "No" ENDIF NEXT I
DIM SEGTREE[250000] VAR I,SUM 'セグメント木初期化 COPY SEGTREE,N,R FOR I=N-1 TO 1 STEP -1 SEGTREE[I]=SEGTREE[I<<1]+SEGTREE[(I<<1)+1] '2グループのレートの和 NEXT I
FOR I=1 TO M INPUT D,P,F,E,S P=P-R[D] '増加したレート D=D+N WHILE D>0 INC SEGTREE[D],P D=D>>1 WEND SUM=0F=F+N:E=E+N+1 WHILE F<E IF E AND 1 THEN E=E-1 SUM=SUM+SEGTREE[E] ENDIF IF F AND 1 THEN SUM=SUM+SEGTREE[F] F=F+1 ENDIF F=F>>1E=E>>1 WEND IF SUM>S THEN PRINT "Yes" ELSE PRINT "No" ENDIF NEXT I
このコメントはネタバレを含んでいます。
チゲ2020/12/19 17:54 ネタバレ◆WZeL9z8yLqFX
高橋小学校とかすぬけ先生とか、元ネタ何かと思って調べたら足の多い高橋君で爆笑した。 WHILE D>0 INC SEGTREE[D],P WEND 勘違いだったら悪いんですけど、ここ何か抜けてません?