A 最优选法
题目名字很说明问题。统计0的个数,设为X。统计最大值出现的次数,设为Y。统计全部正数的和,设为sum。
分情况讨论:
1.数列里存在正数,答案是(sum,2^X)。
2.没有正数,有零,答案是(0,2^X-1)。
3.全是负数,就选最大值,第二问是Y。(这个当时没相对所以WA90)
Codeprogram RQ695; const p=1000000000000000003; var sum,maxmin,a,ans2,maxcnt:int64; i,n:longint; begin readln(n);sum:=0; maxmin:=-1000010; ans2:=1; for i:=1 to n do begin read(a); if a>0 then inc(sum,a) else if a<0 then begin if a>maxmin then begin maxmin:=a;maxcnt:=1;end else if a=maxmin then maxcnt:=(maxcnt+1)mod p; end else ans2:=(ans2<<1) mod p; end; if(sum>0) then writeln(sum,' ',ans2) else begin if(ans2>1) then writeln(0,' ',ans2-1) else writeln(maxmin,' ',maxcnt); end; end.
B 送分题
C 幻方
我只做了第一题,得89分,还排名26。RQNOJ真的没人做吗。。。