From 73ab1d168add7f28ca3ffb7cf10dc09141ae51d1 Mon Sep 17 00:00:00 2001 From: YuhangQ Date: Sat, 4 Mar 2023 10:39:33 +0000 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E7=85=A7stem=E7=BF=BB=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- atpg | Bin 74832 -> 74832 bytes circuit.cpp | 3 +-- circuit.h | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/atpg b/atpg index dd5ffcb532519ce9fa234e3bc72f42eda8245c8a..d8982387fe689793294dcfff56c0346b66fb1cd0 100755 GIT binary patch delta 7881 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 Ywci1?g5QU8LYWI=outputs.size() >= 2) { - + gate->stem = true; } - gate->stem = true; if(gate->stem) { stems.push_back(gate); } diff --git a/circuit.h b/circuit.h index 011261b..c781af5 100644 --- a/circuit.h +++ b/circuit.h @@ -91,7 +91,7 @@ static ll propagate_total_cost; static int propagate_falsified_cnt; static const int FAULT_INC = 1; -static const int FAULT_COST_MAX = 1e9; +static const int FAULT_COST_MAX = 20; static ll fault_total_cost; static int fault_falsified_cnt;