all-cups / highloadcup Goto Github PK
View Code? Open in Web Editor NEWHighLoad Cup. Золотая лихорадка
HighLoad Cup. Золотая лихорадка
Так как сервер после этого ответа не подымается, предлагаю заканчивать решение досрочно, чтобы освобождать машину и возвращать результат решения раньше.
Привет,
Если запросить /explore от Area(0, 0, 3600, 3600), то получим такое сообщение. По условию должно быть X: 0-3499. Должно быть, опечатка
422 "{"code":1000,"message":"wrong coordinates: X 0-3599 outside 0-3499"}
Из спецификации:
При генерации мира используется параметр SEED. Он определяет сколько кладов и на каком этаже будет сгенерировано, какая будет ценность каждого клада и какой этаж будет оптимальным по соотношению ценности кладов к стоимости их добычи.
Вопросы:
I have bring error "waiting for first API request: timeout".
Please make more logs for this error.
SEED. Он определяет сколько кладов и на каком этаже будет сгенерировано, какая будет ценность каждого клада и какой этаж будет оптимальным по соотношению ценности кладов к стоимости их добычи.
Это условие не выполняется - используя только бесплатные лицензии, при одинаковых SEED и абсолютно одинаковых раскапываемых точках (полностью на 10 этажей), но раскапываемых в разном порядке, выдает разные ценности кладов, и, как результат, разный заработок в конце.
Любой может проверить.
SEED: 2000
3001, 3042, 26
3004, 3033, 30
3003, 3027, 20
3000, 3020, 31
3004, 3019, 23
3000, 3013, 24
3000, 3012, 24
3003, 3010, 20
3002, 3004, 20
3002, 3003, 8
3001, 3001, 10
3004, 3000, 35
Итого: 271.
3004, 3000, 36
3000, 3020, 30
3004, 3033, 17
3004, 3019, 31
3000, 3013, 23
3001, 3042, 21
3003, 3027, 22
3000, 3012, 22
3002, 3003, 22
3003, 3010, 7
3001, 3001, 10
3002, 3004, 25
Итого: 266.
Видно, что 266 != 271.
Совместно с #26 это срочный критический баг, прошу организаторов отреагировать. @SannikovDmitry
What affects response time for /cash. Is it allways the same for all treasurues and depends only on seed, or it's affected by the load of the server or it's allwayes random(distict values for each treasure)?
Is it prohibited to obtains system time? My submit sha256:a3e18c0c520ed4f2b11664254e3b100bdc762d344e54f5708271ade8529b0374 requests system time with
auto currentTime = std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::steady_clock::now().time_since_epoch()
).count();
and it fails with waiting for first API request: timeout
. Without it it seems to work.
Хотелось бы видеть в правилах следующие моменты:
When I press "Show the decision log" I see shortened version of the log and can't find a way to download the complete version of it.
/[0-9]m/
regex matches silently dropped from logs.
print("TEST: duration=123ms '1m' 'am' '123MS' ")
becomes TEST: duration=12s '' 'am' '123MS'
in logs.
Looks like failed attempt to remove ANSI escape sequences.
При попытке запуска существующего решения на пользовательском SEED, на вкладке "Пользовательские" после статуса отправлено в систему обсчета появялется ошибка "Ошибка! Error in the launch system.".
Выдержка из правил: "Чем глубже раскопки, тем больше нужно времени на один вызов API. При этом есть шанс, что количество золота в кладе будет больше. При этом максимальная глубина не гарантирует большую стоимость сокровища по сравнению с другими этажами." Вроде как идея выглядит красиво - копай вглубь, и находи золото, но при текущей реализации команда explore выдаёт количество закопанных кладов и сами клады располагаются один на клетке. Что сводит весь алгоритм копания к тому, что если explore сказала, что клад есть, то копай пока до него не доберешься.
На мой взгляд, было бы интереснее если кладов было бы несколько в одной клетке, например, по количеству монет на этажах: 0, 0, 4, 7, 0, 10, 6, 15, 0, 0, при этом explore говорила бы о наличии клада в ячейке (в первоначальном варианте). Тогда участникам после каждой раскопки предстояло бы решать задачу - стоит ли копать дальше?
Требуется подробное описание ошибки.
Docker-образ локально работает, в связи с чем не понятно, что пошло не так.
Если какая-то проблема на серверах, то вопрос следующий: будет ли считаться данная попытка потраченной из 10 в день?
Можно ли как-то запустить отправленное решение повторно? (если по новой отправлять образ, то он не воспринимается, т.к. идентичен предыдущему, но менять в программе по сути не чего, т.к. не известно, как она себя ведёт на сервере.
Возможен ли автоматический запуск системы через некоторое время, если известно, что проблема была не в отправленном решении?
Subj
На запросы к /explore (0, 0, 2499, 2499) сервер кидается 503 Service Unavailable, см посылку sha256:296cb821838e66f88fa003287b016d76f302004f17277993ebb50383fd4c5e9f
Это не часть правил
Из спеков:
Чем глубже раскопки, тем больше нужно времени на один вызов API.
В данный момент это условие не выполняется на тестовом сервере. Все вызовы dig
занимают одинаковое количество времени вне зависимости от этажа.
С учётом того, что поле может раскапываться только по одной клетке в глубину, то предлагаю следующие варианты использования команды Dig:
Considering that the field can only be dug one cell deep, I suggest the following options for using the Dig command:
How many coins does a paid license cost?
Набор моих рейтинговых запусков и анализ всего поля полностью говорят о том, что поле содержит 490 000 кладов (как и обещано), но лишь 12 280 652 монет из обещанных 23 030 000! Такое же поведение наблюдается и на некоторых пользовательских SEED, но похоже не на всех.
Мое решение абсолютно "тупое", копающее медленно, но абсолютно всё и вся и бесплатно - я сделал кучу запусков для полной проверки всего поля, чтобы подтвердить свои подозрения.
В данный момент очень сложно различать решения между собой. Было бы реально круто выводить первую строчку из логов где-нибудь на самом решении. Например надо кнопкой "Посмотреть лог решения" переименовав его в "Посмотреть полный лог решения"
Как это можно использовать участникам удобно (пример).
В Dockerfile
добавить:
ARG HELLO_MSG=""
ENV HELLO_MSG=$HELLO_MSG
В main.cpp
:
int main(int argc, char **argv) {
const char *hello_msg = std::getenv("HELLO_MSG");
if (hello_msg) {
mortido::log() << hello_msg << std::endl;
}
в Makefile
:
IMAGE=dima_molodec
RELEASE_TAG=stor.highloadcup.ru/rally/diggy_diggy_hole
build:
docker build -t $(IMAGE) . --build-arg HELLO_MSG='$(msg)'
push: build
docker tag $(IMAGE):latest $(RELEASE_TAG)
docker push $(RELEASE_TAG)
После чего для отправки "помеченных" версий можно будет вызывать make push msg="Hello, Dima!"
It'd be useful to know exact command that you use to run container with solution.
Сейчас в условиях задачи указаны следующие передаваемые environments:
ADDRESS: default
Port: 8000;
Schema: http
Но есть подозрение, что Port и Schema не передаются. Просьба это проверить, а также уточнить формат данных, т.к. "8000;" выглядит ошибкой.
The game server doesn't support http keepalive. Is it intended?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.