题解 P4956 【[COCI2017-2018#6] Davor】
这道红题很符合我的水平。。。
这是一道二元一次方程!
由题意,我们可以知道一周能筹集到的钱 x+(x+k)+(x+2k)+……+(x+6k)
即 7x+21k 那么52个星期可以有:(计算ing)364x+1092k
因为满足 1≤x≤100,所以不用担心会不会爆掉。
Pascal 代码如下:
var x,n,k:longint;
begin
readln(n);
for x:=100 downto 1 do //枚举x的可能,因为要求输出最大的x,所以用了downto
begin
k:=n-364*x;
if k<=0 then continue;
if k mod 1092=0 then //判断在x成立的情况下k会不会成立
begin
writeln(x);
writeln(k div 1092);
exit; //如果成立就可以直接跳出循环,因为此时的x是最大的
end;
end;
end.
蒟蒻的第一篇题解,管理员大佬求过QAQ