For problem statement at 0-999/200-299/200-209/206/problemD1.txt this is a correct solution, but verifier at 0-999/200-299/200-209/206/verifierD1.go ends with test 1 failed
input:
1
Trade
Wheat prices rising worldwide.
Investors stay cautious.
expect:
1
actual:
3
exit status 1 can you fix the verifier? package main
import (
"fmt"
"io"
"os"
"strings"
"unicode"
)
type K struct {
s string
w int
}
var lawWords = []K{
{"закон", 5}, {"кодекс", 7}, {"судеб", 7}, {"суд", 4}, {"арбитраж", 8},
{"правов", 6}, {"правоотнош", 7}, {"юрид", 6}, {"конституц", 8},
{"гражданск", 4}, {"уголов", 7}, {"административ", 6}, {"процессуал", 6},
{"нотари", 7}, {"правонаруш", 8}, {"постановлен", 4}, {"приказ", 3},
{"решени", 2}, {"иск", 5}, {"истец", 6}, {"ответчик", 6}, {"прокур", 6},
{"следств", 5}, {"договор", 2}, {"обязанност", 3}, {"лиценз", 3},
{"законодатель", 7}, {"норматив", 5}, {"федеральн", 2}, {"стать", 3},
{"подзакон", 6}, {"конвенц", 4}, {"презумпц", 6}, {"подсудн", 6},
{"юрисдикц", 6}, {"собственност", 3}, {"правоохран", 6}, {"осужден", 7},
{"наказан", 6}, {"преступ", 7}, {"правомер", 6}, {"диспозит", 5},
{"санкц", 5}, {"ответственност", 6},
{" legal ", 5}, {" court ", 6}, {" code ", 5}, {" constitution", 7},
{" criminal", 6}, {" civil ", 4}, {" administrative", 5},
{" jurisdiction", 6}, {" plaintiff", 6}, {" defendant", 6},
{" regulation", 5}, {" statute", 6}, {" lawyer", 6}, {" jurisprud", 7},
}
var lawPhrases = []K{
{"федеральный закон", 20}, {"арбитражный суд", 20}, {"уголовный кодекс", 20},
{"гражданский кодекс", 20}, {"кодекс российской федерации", 20},
{"постановление правительства", 15}, {"судебное решение", 15},
{"юридическое лицо", 10}, {"правовое регулирование", 12},
{"нормативно прав", 12}, {"административн правонаруш", 15},
{"гражданско прав", 12}, {"уголовн ответствен", 12},
{"правовое положение", 12}, {"договор купли продажи", 8},
{"конституционный суд", 18}, {"апелляционн жалоб", 15},
{"кассационн жалоб", 15}, {"исковое заявление", 15},
{"трудовой кодекс", 18}, {"семейный кодекс", 18},
{"гражданское право", 14}, {"административное право", 14},
{"уголовное право", 14},
{" rule of law ", 16}, {" legal entity ", 12}, {" civil law ", 14},
{" criminal law ", 14},
}
var finWords = []K{
{"бухгалтер", 10}, {"учетн", 4}, {"учет", 3}, {"аудит", 9}, {"финанс", 8},
{"банк", 7}, {"банков", 7}, {"кредит", 7}, {"налог", 6}, {"бюджет", 7},
{"инвест", 7}, {"страхов", 6}, {"актив", 6}, {"пассив", 6}, {"баланс", 8},
{"прибыл", 6}, {"убыт", 6}, {"денеж", 6}, {"депозит", 8}, {"валют", 6},
{"касс", 6}, {"платеж", 6}, {"счет", 5}, {"отчетн", 7}, {"отчет", 4},
{"себестоим", 8}, {"амортиз", 7}, {"доход", 5}, {"расход", 5},
{"капитал", 6}, {"облигац", 7}, {"дивиденд", 7}, {"лизинг", 6},
{"ипотек", 6}, {"заем", 5}, {"задолж", 6}, {"налогооблож", 7},
{"дебитор", 7}, {"кредитор", 7}, {"рентаб", 6}, {"эконом", 3},
{"фонд", 4}, {"хозяйствен", 4}, {"калькуляц", 7}, {"смет", 6},
{"ликвидн", 6}, {"фискал", 6}, {"маржа", 5}, {"мсфо", 9}, {"рсбу", 9},
{"бюджетир", 7}, {"финрезульт", 7},
{" accounting", 9}, {" audit", 9}, {" financial", 8}, {" bank", 7},
{" credit", 7}, {" budget", 7}, {" tax", 6}, {" investment", 7},
{" capital", 6}, {" balance", 8}, {" asset", 6}, {" liabilit", 6},
{" profit", 6}, {" loss", 6}, {" cash", 6}, {" loan", 6},
{" insurance", 6}, {" equity", 6}, {" debt", 6},
}
var finPhrases = []K{
{"бухгалтерский учет", 22}, {"бухгалтерская отчетность", 20},
{"финансовая отчетность", 18}, {"денежные средства", 15},
{"аудиторская проверка", 16}, {"кредитная организация", 15},
{"банковская деятельность", 15}, {"дебиторская задолженность", 18},
{"кредиторская задолженность", 18}, {"финансовый результат", 15},
{"учетная политика", 15}, {"основные средства", 14},
{"оборотные активы", 14}, {"собственный капитал", 14},
{"уставный капитал", 14}, {"денежный поток", 14},
{"налоговая база", 14}, {"кассовые операции", 14},
{"налоговый учет", 18}, {"бухгалтерский баланс", 20},
{"отчет о прибылях", 18}, {"финансово хозяйствен", 16},
{"первичные документы", 12}, {"учет затрат", 16},
{"калькулирование себестоимости", 20}, {"анализ финансов", 16},
{"налог на", 8}, {"налоговое планирование", 12},
{"расчетный счет", 12},
{" financial reporting", 18}, {" cash flow", 14},
{" balance sheet", 18}, {" income statement", 16},
{" accounting policy", 16}, {" financial result", 14},
}
var tradeWords = []K{
{"торгов", 10}, {"товар", 9}, {"товаровед", 10}, {"продаж", 8},
{"покуп", 7}, {"магаз", 7}, {"рынок", 5}, {"маркет", 7}, {"постав", 6},
{"склад", 6}, {"оптов", 8}, {"рознич", 8}, {"покупател", 7},
{"клиент", 4}, {"коммерц", 7}, {"ассортимент", 8}, {"цено", 4},
{"экспорт", 6}, {"импорт", 6}, {"продукц", 4}, {"закуп", 6},
{"реализац", 7}, {"сбыт", 7}, {"услуг", 3}, {"потребител", 6},
{"конкурен", 5}, {"спрос", 6}, {"предложен", 5}, {"мерчендайз", 10},
{"витрин", 6}, {"поставщик", 7}, {"товародвиж", 9},
{"товарооборот", 10}, {"ярмарк", 5}, {"дистриб", 7}, {"логист", 5},
{"реклама", 4}, {"бренд", 4}, {"ритейл", 8},
{" retail", 8}, {" wholesale", 8}, {" sale", 5}, {" sales", 6},
{" shop", 5}, {" store", 5}, {" market", 4}, {" trade", 8},
{" commerce", 8}, {" customer", 5}, {" product", 4},
{" seller", 5}, {" consumer", 4}, {" supplier", 6},
{" inventory", 6}, {" marketing", 7}, {" merchandising", 9},
{" purchase", 6}, {" price", 4},
}
var tradePhrases = []K{
{"розничная торгов", 20}, {"оптовая торгов", 20},
{"договор купли продажи", 15}, {"торговое предприят", 16},
{"товарный ассортимент", 18}, {"потребительский спрос", 15},
{"коммерческая деятель", 18}, {"рынок сбыта", 18},
{"закупочная деятель", 15}, {"товарооборот", 20},
{"торгово технолог", 16}, {"товарные запасы", 15},
{"продвижение товара", 15}, {"обслуживание покупателей", 18},
{"маркетинговые исследования", 18}, {"товароведение", 20},
{"торговый зал", 16}, {"розничной купли продажи", 18},
{"коммерческое предприятие", 14}, {"каналы сбыта", 16},
{"торговая сеть", 16}, {"ассортимент товаров", 18},
{"качество товаров", 16}, {"поставка товаров", 16},
{" retail trade", 20}, {" wholesale trade", 20},
{" consumer demand", 15}, {" marketing research", 18},
{" sales market", 16},
}
func normalize(s string) string {
s = strings.ToLower(s)
s = strings.ReplaceAll(s, "ё", "е")
var b strings.Builder
for _, r := range s {
if unicode.IsLetter(r) || unicode.IsDigit(r) {
b.WriteRune(r)
} else {
b.WriteByte(' ')
}
}
return " " + strings.Join(strings.Fields(b.String()), " ") + " "
}
func score(text string, arr []K) int {
res := 0
for _, k := range arr {
c := strings.Count(text, k.s)
if c > 0 {
res += c * k.w
}
}
return res
}
func containsAny(s string, arr []string) bool {
for _, x := range arr {
if strings.Contains(s, x) {
return true
}
}
return false
}
func main() {
data, _ := io.ReadAll(os.Stdin)
input := strings.ReplaceAll(string(data), "\r", "")
lines := strings.Split(input, "\n")
titleRaw := ""
bodyRaw := ""
if len(lines) >= 2 {
titleRaw = lines[1]
}
if len(lines) >= 3 {
bodyRaw = strings.Join(lines[2:], "\n")
}
title := normalize(titleRaw)
body := normalize(bodyRaw)
full := title + " " + body
lw := score(body, lawWords) + score(body, lawPhrases) + 4*score(title, lawWords) + 6*score(title, lawPhrases)
fw := score(body, finWords) + score(body, finPhrases) + 4*score(title, finWords) + 6*score(title, finPhrases)
tw := score(body, tradeWords) + score(body, tradePhrases) + 4*score(title, tradeWords) + 6*score(title, tradePhrases)
if strings.HasPrefix(title, " федеральный закон ") ||
strings.HasPrefix(title, " постановление ") ||
strings.HasPrefix(title, " определение ") ||
strings.HasPrefix(title, " решение ") ||
strings.HasPrefix(title, " приказ ") ||
strings.HasPrefix(title, " кодекс ") {
lw += 30
}
if containsAny(title, []string{" бухгалтер", " аудит", " финанс", " баланс", " налого", " банк ", " кредит ", " отчетност", " учет "}) {
fw += 25
}
if containsAny(title, []string{" торгов", " товар", " товаровед", " коммер", " маркет", " продаж", " логист", " ритейл", " merchand", " retail", " wholesale"}) {
tw += 25
}
if containsAny(title, []string{" правов", " юрид", " суд", " кодекс", " закон", " уголов", " гражданск", " административ"}) {
lw += 25
}
if strings.Contains(full, " статья ") && (strings.Contains(full, " кодекс ") || strings.Contains(full, " суд ")) {
lw += 15
}
if strings.Contains(full, " бухгалтерский учет ") || strings.Contains(full, " бухгалтерская отчетность ") {
fw += 20
}
if strings.Contains(full, " розничная торгов ") || strings.Contains(full, " оптовая торгов ") || strings.Contains(full, " товароведение ") {
tw += 20
}
if tw >= lw && tw >= fw {
fmt.Println(3)
return
}
if lw == fw {
if containsAny(title, []string{" закон", " кодекс", " суд", " правов", " юрид", " уголов", " гражданск", " административ"}) {
fmt.Println(1)
} else {
fmt.Println(2)
}
return
}
if lw > fw {
fmt.Println(1)
} else {
fmt.Println(2)
}
}