Skip to content

xiaoxiaobaozi/agents

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AICodeforcer

Gemini-powered algorithm problem solver agent.

ไฝฟ็”จ Gemini AI ่‡ชๅŠจ่งฃๅ†ณ Codeforces ็ญ‰ OJ ๅนณๅฐ็š„็ฎ—ๆณ•็ซž่ต›้ข˜็›ฎ๏ผŒๆ”ฏๆŒ่‡ชๅŠจๅฏนๆ‹้ชŒ่ฏๅ’Œ Python ่ฝฌ C++ ็ฟป่ฏ‘ใ€‚

็ณป็ปŸๆžถๆž„ๆฆ‚่งˆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                              AICodeforcer                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                              โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”‚
โ”‚  โ”‚   Standard  โ”‚  โ”‚ Interactive โ”‚  โ”‚ Communication โ”‚  โ”‚    Heavy    โ”‚      โ”‚
โ”‚  โ”‚    Mode     โ”‚  โ”‚    Mode     โ”‚  โ”‚     Mode      โ”‚  โ”‚    Mode     โ”‚      โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ”‚
โ”‚         โ”‚                  โ”‚                    โ”‚                            โ”‚
โ”‚         โ–ผ                  โ–ผ                    โ–ผ                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”‚
โ”‚  โ”‚   Solver    โ”‚    โ”‚ Preprocessorโ”‚    โ”‚  Preprocessor   โ”‚                  โ”‚
โ”‚  โ”‚   Agent     โ”‚    โ”‚   Agent     โ”‚    โ”‚     Agent       โ”‚                  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ”‚         โ”‚                  โ”‚                    โ”‚                            โ”‚
โ”‚         โ”‚                  โ–ผ                    โ–ผ                            โ”‚
โ”‚         โ”‚           โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”‚
โ”‚         โ”‚           โ”‚   Solver    โ”‚    โ”‚     Solver      โ”‚                  โ”‚
โ”‚         โ”‚           โ”‚   Agent     โ”‚    โ”‚     Agent       โ”‚                  โ”‚
โ”‚         โ”‚           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ”‚         โ”‚                  โ”‚                    โ”‚                            โ”‚
โ”‚         โ–ผ                  โ–ผ                    โ–ผ                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”‚
โ”‚  โ”‚ BruteForce  โ”‚    โ”‚   Stress    โ”‚    โ”‚     Stress      โ”‚                  โ”‚
โ”‚  โ”‚  Generator  โ”‚    โ”‚    Test     โ”‚    โ”‚      Test       โ”‚                  โ”‚
โ”‚  โ”‚ (3-way)     โ”‚    โ”‚             โ”‚    โ”‚                 โ”‚                  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ”‚         โ”‚                  โ”‚                    โ”‚                            โ”‚
โ”‚         โ–ผ                  โ–ผ                    โ–ผ                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”‚
โ”‚  โ”‚   Stress    โ”‚    โ”‚     C++     โ”‚    โ”‚       C++       โ”‚                  โ”‚
โ”‚  โ”‚    Test     โ”‚    โ”‚  Translator โ”‚    โ”‚   Translator    โ”‚                  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ”‚
โ”‚         โ”‚                                                                    โ”‚
โ”‚         โ–ผ                                                                    โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                                            โ”‚
โ”‚  โ”‚     C++     โ”‚                                                            โ”‚
โ”‚  โ”‚  Translator โ”‚                                                            โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                                            โ”‚
โ”‚                                                                              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                           Shared Components                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚
โ”‚  โ”‚  Executor   โ”‚  โ”‚  API Logger โ”‚  โ”‚   Types     โ”‚  โ”‚    Tools    โ”‚        โ”‚
โ”‚  โ”‚  (Sandbox)  โ”‚  โ”‚             โ”‚  โ”‚             โ”‚  โ”‚             โ”‚        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅŠŸ่ƒฝ็‰นๆ€ง

  • ๆ ‡ๅ‡†็ฎ—ๆณ•้ข˜ๆจกๅผ

    • ่‡ชๅŠจๅˆ†ๆž็ฎ—ๆณ•้ข˜็›ฎๅนถ็”Ÿๆˆ่งฃๆณ•
    • ไธ‰่ทฏๅ…ฑ่ฏ†ๆšดๅŠ›็”Ÿๆˆ๏ผˆ3 ไธช็‹ฌ็ซ‹ Agent ๅฟ…้กปไธ€่‡ด๏ผ‰
    • ่‡ชๅŠจๅฏนๆ‹้ชŒ่ฏ๏ผˆ้ป˜่ฎค 1000 ็ป„้šๆœบๆต‹่ฏ•๏ผ‰
    • ๅคฑ่ดฅ่‡ชๅŠจ้‡่ฏ•ๆœบๅˆถ
  • ไบคไบ’้ข˜ๆจกๅผ

    • ่‡ชๅŠจ็”Ÿๆˆ่ฏ„ๆต‹ๆœบ๏ผˆJudge๏ผ‰ๅ’Œๆ•ฐๆฎ็”Ÿๆˆๅ™จ
    • AI ้ชŒ่ฏ่ฏ„ๆต‹ๆœบๆญฃ็กฎๆ€ง
    • ไบคไบ’ๅผๅฏนๆ‹้ชŒ่ฏ๏ผˆ้ป˜่ฎค 100 ็ป„ๆต‹่ฏ•๏ผ‰
  • ้€š่ฎฏ้ข˜ๆจกๅผ

    • ๆ”ฏๆŒ Alice/Bob ไธค้˜ถๆฎต้€š่ฎฏ้—ฎ้ข˜
    • ่‡ชๅŠจ็”Ÿๆˆไธญ้—ดไปถ๏ผˆMiddleware๏ผ‰ๅ’Œ้ชŒ่ฏๅ™จ
    • ไธค้˜ถๆฎตไธฒ่กŒๆ‰ง่กŒๅฏนๆ‹้ชŒ่ฏ๏ผˆ้ป˜่ฎค 100 ็ป„ๆต‹่ฏ•๏ผ‰
  • Heavyๆจกๅผ๏ผˆๅคšAgentๆŽข็ดข๏ผ‰

    • ๅคšไธชAgentๅนถ่กŒๆŽข็ดขไธๅŒ่งฃๆณ•
    • ๆตๆฐด็บฟๅนถ่กŒ๏ผšAgent N ้ฆ–ๆฌก stress_test ๆ—ถ่งฆๅ‘ Agent N+1
    • LLMๆ€่ทฏๅŽป้‡ๆฃ€ๆต‹๏ผŒ้˜ฒๆญข้‡ๅค็ฎ—ๆณ•
    • ่‡ชๅŠจ็ฆๆญขๅทฒๆŽข็ดข็š„ๆ€่ทฏ๏ผŒๅผบๅˆถๅทฎๅผ‚ๅŒ–
    • ๆ”ฏๆŒ้…็ฝฎ้‡ๅ†™ไธŠ้™๏ผˆAPPROACH_REWRITE_LIMIT๏ผ‰
  • ้€š็”จๅŠŸ่ƒฝ

    • ไฝฟ็”จๆฒ™็ฎฑ็Žฏๅขƒๆ‰ง่กŒไปฃ็ ๆต‹่ฏ•
    • Python ไปฃ็ ่‡ชๅŠจ็ฟป่ฏ‘ไธบ็ซž่ต›้ฃŽๆ ผ C++
    • ๆ”ฏๆŒไบคไบ’ๅผๅ้ฆˆไผ˜ๅŒ–๏ผˆTLE/WA/MLE/RE๏ผ‰
    • ๅฎŒๆ•ด API ่ฏทๆฑ‚/ๅ“ๅบ”ๆ—ฅๅฟ—่ฎฐๅฝ•

ๅฎ‰่ฃ…

# ๅ…‹้š†้กน็›ฎ
git clone https://github.com/yourname/AICodeforcer.git
cd AICodeforcer

# ไฝฟ็”จ uv ๅฎ‰่ฃ…ไพ่ต–
uv sync

# ๆˆ–ไฝฟ็”จ pip
pip install -e .

้…็ฝฎ

ๅˆ›ๅปบ .env ๆ–‡ไปถๅนถ้…็ฝฎ๏ผš

# Gemini API ้…็ฝฎ๏ผˆๅฟ…้œ€๏ผ‰
GEMINI_API_KEY=your_api_key_here

# ๅฏ้€‰้…็ฝฎ
GEMINI_MODEL=gemini-2.5-flash          # ๆจกๅž‹ๅ็งฐ
GEMINI_BASE_URL=https://your-proxy.com # ่‡ชๅฎšไน‰ API ๅœฐๅ€
GEMINI_MAX_OUTPUT_TOKENS=65536         # ๆœ€ๅคง่พ“ๅ‡บ token ๆ•ฐ

# API ่ฏทๆฑ‚้‡่ฏ•ๆฌกๆ•ฐ
API_REQUEST_MAX_RETRIES=30             # API ่ฏทๆฑ‚ๅคฑ่ดฅ้‡่ฏ•ๆฌกๆ•ฐ

# ๅฏนๆ‹ๆต‹่ฏ•ๆฌกๆ•ฐ
STRESS_TEST_NUM=1000                   # ๆ ‡ๅ‡†ๆจกๅผๅฏนๆ‹ๆฌกๆ•ฐ
INTERACTIVE_STRESS_TEST_NUM=100        # ไบคไบ’ๆจกๅผๅฏนๆ‹ๆฌกๆ•ฐ
COMMUNICATION_STRESS_TEST_NUM=100      # ้€š่ฎฏ้ข˜ๆจกๅผๅฏนๆ‹ๆฌกๆ•ฐ

# ้‡่ฏ•้…็ฝฎ
BRUTE_FORCE_CONSENSUS_RETRIES=3        # ไธ‰่ทฏๅ…ฑ่ฏ†ๅคฑ่ดฅ้‡่ฏ•ๆฌกๆ•ฐ

# Heavyๆจกๅผ้…็ฝฎ
APPROACH_REWRITE_LIMIT=2               # ๆ€่ทฏ้‡ๅ†™ไธŠ้™๏ผˆๅŽป้‡ๆฃ€ๆต‹๏ผ‰

้…็ฝฎ้กน่ฏดๆ˜Ž

้…็ฝฎ้กน ้ป˜่ฎคๅ€ผ ่ฏดๆ˜Ž
GEMINI_API_KEY - ๅฟ…้œ€ Gemini API ๅฏ†้’ฅ
GEMINI_MODEL gemini-2.5-flash ไฝฟ็”จ็š„ๆจกๅž‹ๅ็งฐ
GEMINI_BASE_URL - ่‡ชๅฎšไน‰ API ๅœฐๅ€๏ผˆไปฃ็†๏ผ‰
GEMINI_MAX_OUTPUT_TOKENS 65536 ๅ•ๆฌก่ฏทๆฑ‚ๆœ€ๅคง่พ“ๅ‡บ token
API_REQUEST_MAX_RETRIES 30 API ่ฏทๆฑ‚ๅคฑ่ดฅ้‡่ฏ•ๆฌกๆ•ฐ
STRESS_TEST_NUM 1000 ๆ ‡ๅ‡†ๆจกๅผๅฏนๆ‹ๆต‹่ฏ•ๆฌกๆ•ฐ
INTERACTIVE_STRESS_TEST_NUM 100 ไบคไบ’ๆจกๅผๅฏนๆ‹ๆต‹่ฏ•ๆฌกๆ•ฐ
COMMUNICATION_STRESS_TEST_NUM 100 ้€š่ฎฏ้ข˜ๆจกๅผๅฏนๆ‹ๆต‹่ฏ•ๆฌกๆ•ฐ
BRUTE_FORCE_CONSENSUS_RETRIES 3 ไธ‰่ทฏๅ…ฑ่ฏ†ๅคฑ่ดฅ้‡่ฏ•ๆฌกๆ•ฐ
APPROACH_REWRITE_LIMIT 2 Heavyๆจกๅผๆ€่ทฏ้‡ๅ†™ไธŠ้™

ไฝฟ็”จๆ–นๆณ•

# ่ฟ่กŒ
aicodeforcer

# ๆˆ–
python -m AICodeforcer.main

่ฟ่กŒๅŽ้€‰ๆ‹ฉๆจกๅผ๏ผš

  1. ๆ ‡ๅ‡†็ฎ—ๆณ•้ข˜ - ๅฏนๆ‹้ชŒ่ฏๆจกๅผ
  2. ไบคไบ’้ข˜ - ไบคไบ’ๅผ่ฏ„ๆต‹ๆจกๅผ
  3. ้€š่ฎฏ้ข˜ - Alice/Bob ไธค้˜ถๆฎตๆจกๅผ
  4. Heavyๆจกๅผ - ๅคšAgentๆŽข็ดขไธๅŒ่งฃๆณ•

็„ถๅŽ๏ผš

  1. ็ฒ˜่ดดๅฎŒๆ•ด็š„้ข˜็›ฎๅ†…ๅฎน
  2. ่พ“ๅ…ฅ END ็ป“ๆŸ่พ“ๅ…ฅ
  3. ็ญ‰ๅพ… AI ๅˆ†ๆžใ€็ผ–ๅ†™ไปฃ็ ใ€ๅฏนๆ‹้ชŒ่ฏ
  4. ่Žทๅพ— Python + C++ ๅŒไปฝไปฃ็ 
  5. ๆไบคๅŽ่พ“ๅ…ฅๅ้ฆˆ๏ผˆๅฆ‚ TLE on test 5๏ผ‰็ปง็ปญไผ˜ๅŒ–
  6. ่พ“ๅ…ฅ AC ๆˆ– quit ็ป“ๆŸ

้กน็›ฎ็ป“ๆž„

src/AICodeforcer/
โ”œโ”€โ”€ main.py                # CLI ๅ…ฅๅฃ
โ”œโ”€โ”€ types.py               # ็ฑปๅž‹ๅฎšไน‰
โ”œโ”€โ”€ api_logger.py          # API ๆ—ฅๅฟ—่ฎฐๅฝ•ๅ™จ
โ”œโ”€โ”€ standard/              # ๆ ‡ๅ‡†็ฎ—ๆณ•้ข˜ๆจกๅ—
โ”‚   โ”œโ”€โ”€ agents/
โ”‚   โ”‚   โ”œโ”€โ”€ solver.py      # ็ฎ—ๆณ•ๆฑ‚่งฃ Agent
โ”‚   โ”‚   โ”œโ”€โ”€ brute_force.py # ไธ‰่ทฏๅ…ฑ่ฏ†ๆšดๅŠ›็”Ÿๆˆ
โ”‚   โ”‚   โ””โ”€โ”€ cpp_translator.py
โ”‚   โ””โ”€โ”€ tools/
โ”‚       โ”œโ”€โ”€ executor.py    # ๆฒ™็ฎฑไปฃ็ ๆ‰ง่กŒๅ™จ
โ”‚       โ”œโ”€โ”€ run_python.py  # ไปฃ็ ๆ‰ง่กŒๅทฅๅ…ท
โ”‚       โ””โ”€โ”€ stress_test.py # ๅฏนๆ‹้ชŒ่ฏๅทฅๅ…ท
โ”œโ”€โ”€ standard_heavy/        # Heavyๆจกๅผๆจกๅ—
โ”‚   โ””โ”€โ”€ agents/
โ”‚       โ”œโ”€โ”€ solver.py      # Heavyๆฑ‚่งฃAgent
โ”‚       โ”œโ”€โ”€ heavy_solver.py # ๅคšAgentๅ่ฐƒๅ™จ
โ”‚       โ””โ”€โ”€ approach_checker.py # ๆ€่ทฏๅŽป้‡ๆฃ€ๆต‹
โ””โ”€โ”€ interactive/           # ไบคไบ’้ข˜ๆจกๅ—
    โ”œโ”€โ”€ agents/
    โ”‚   โ”œโ”€โ”€ solver.py      # ไบคไบ’้ข˜ๆฑ‚่งฃ Agent
    โ”‚   โ”œโ”€โ”€ preprocessor.py # ่ฏ„ๆต‹ๆœบ็”Ÿๆˆๅ™จ
    โ”‚   โ””โ”€โ”€ judge_validator.py
    โ””โ”€โ”€ tools/
        โ”œโ”€โ”€ interaction_runner.py    # IPC ้€šไฟก็ฎก็†
        โ””โ”€โ”€ interactive_stress_test.py
โ””โ”€โ”€ communication/         # ้€š่ฎฏ้ข˜ๆจกๅ—
    โ”œโ”€โ”€ agents/
    โ”‚   โ”œโ”€โ”€ solver.py      # ้€š่ฎฏ้ข˜ๆฑ‚่งฃ Agent
    โ”‚   โ””โ”€โ”€ preprocessor.py # ไธญ้—ดไปถ/้ชŒ่ฏๅ™จ็”Ÿๆˆ
    โ””โ”€โ”€ tools/
        โ”œโ”€โ”€ communication_runner.py  # ไธค้˜ถๆฎตๆ‰ง่กŒๅ™จ
        โ””โ”€โ”€ stress_test.py           # ้€š่ฎฏ้ข˜ๅฏนๆ‹

ๆ—ฅๅฟ—

ๆฏๆฌก่ฟ่กŒไผšๅœจ logs/ ไธ‹ๅˆ›ๅปบๆ—ถ้—ดๆˆณๆ–‡ไปถๅคน๏ผš

logs/20251224_165001/
โ”œโ”€โ”€ solve.log              # ๆ™ฎ้€šๆ—ฅๅฟ—
โ”œโ”€โ”€ solve_full.log         # ๅฎŒๆ•ด API ๆ—ฅๅฟ—
โ”œโ”€โ”€ brute_force_full.log   # ๆšดๅŠ›็”Ÿๆˆๆ—ฅๅฟ—
โ””โ”€โ”€ brute_force_agent*_full.log

ๅทฅไฝœๆต็จ‹

1. ๆ ‡ๅ‡†็ฎ—ๆณ•้ข˜ๆจกๅผ (Standard Mode)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        Standard Algorithm Solver                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  1. Problem Analysis (้ข˜ๆ„ๅˆ†ๆž)                                           โ”‚
โ”‚     โ”œโ”€ Restate problem in own words                                      โ”‚
โ”‚     โ”œโ”€ Identify input/output format                                      โ”‚
โ”‚     โ””โ”€ Build mathematical model                                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  2. Algorithm Design (็ฎ—ๆณ•่ฎพ่ฎก)                                           โ”‚
โ”‚     โ”œโ”€ Propose 2-3 candidate approaches                                  โ”‚
โ”‚     โ”œโ”€ Analyze time/space complexity                                     โ”‚
โ”‚     โ””โ”€ Select optimal approach with proof                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  3. Code Implementation (ไปฃ็ ๅฎž็Žฐ)                                        โ”‚
โ”‚     โ”œโ”€ Write Python solution                                             โ”‚
โ”‚     โ”œโ”€ Use run_python_code tool to test                                  โ”‚
โ”‚     โ””โ”€ Verify with sample cases                                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  4. Brute Force Generation (ๆšดๅŠ›็”Ÿๆˆ) - 3-Way Consensus                   โ”‚
โ”‚     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚     โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                      โ”‚  โ”‚
โ”‚     โ”‚  โ”‚ Agent 1 โ”‚    โ”‚ Agent 2 โ”‚    โ”‚ Agent 3 โ”‚  (Parallel)          โ”‚  โ”‚
โ”‚     โ”‚  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜                      โ”‚  โ”‚
โ”‚     โ”‚       โ”‚              โ”‚              โ”‚                            โ”‚  โ”‚
โ”‚     โ”‚       โ–ผ              โ–ผ              โ–ผ                            โ”‚  โ”‚
โ”‚     โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                      โ”‚  โ”‚
โ”‚     โ”‚  โ”‚ Code 1  โ”‚    โ”‚ Code 2  โ”‚    โ”‚ Code 3  โ”‚                      โ”‚  โ”‚
โ”‚     โ”‚  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜                      โ”‚  โ”‚
โ”‚     โ”‚       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                            โ”‚  โ”‚
โ”‚     โ”‚                      โ–ผ                                           โ”‚  โ”‚
โ”‚     โ”‚              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                    โ”‚  โ”‚
โ”‚     โ”‚              โ”‚  Consensus?  โ”‚                                    โ”‚  โ”‚
โ”‚     โ”‚              โ”‚ (All Same?)  โ”‚                                    โ”‚  โ”‚
โ”‚     โ”‚              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                    โ”‚  โ”‚
โ”‚     โ”‚                     โ”‚                                            โ”‚  โ”‚
โ”‚     โ”‚         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                โ”‚  โ”‚
โ”‚     โ”‚         โ–ผ                       โ–ผ                                โ”‚  โ”‚
โ”‚     โ”‚    [Yes: Pass]           [No: Retry]                             โ”‚  โ”‚
โ”‚     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  5. Stress Test (ๅฏนๆ‹้ชŒ่ฏ) - Default 1000 tests                          โ”‚
โ”‚     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚     โ”‚  for i in range(1000):                                          โ”‚  โ”‚
โ”‚     โ”‚      test_data = brute_force.generate_random_input()            โ”‚  โ”‚
โ”‚     โ”‚      expected = brute_force.solve(test_data)                    โ”‚  โ”‚
โ”‚     โ”‚      actual = optimized.solve(test_data)                        โ”‚  โ”‚
โ”‚     โ”‚      if expected != actual:                                     โ”‚  โ”‚
โ”‚     โ”‚          return FAILED with counterexample                      โ”‚  โ”‚
โ”‚     โ”‚  return PASSED                                                  โ”‚  โ”‚
โ”‚     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                          โ–ผ                   โ–ผ
                    [PASSED]             [FAILED]
                          โ”‚                   โ”‚
                          โ–ผ                   โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  6. C++ Translation         โ”‚    โ”‚  Analyze counterexample โ”‚
โ”‚     Python โ†’ C++            โ”‚    โ”‚  Fix and retry          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  7. Feedback Loop (ๅ้ฆˆไผ˜ๅŒ–)                                              โ”‚
โ”‚     User submits to OJ โ†’ Gets feedback (TLE/WA/MLE/RE)                   โ”‚
โ”‚     โ†’ AI analyzes and optimizes โ†’ Repeat until AC                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

2. ไบคไบ’้ข˜ๆจกๅผ (Interactive Mode)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        Interactive Problem Solver                         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 1: Preprocessing (้ข„ๅค„็†้˜ถๆฎต)                                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  InteractivePreprocessor Agent                                     โ”‚  โ”‚
โ”‚  โ”‚     โ”œโ”€ Analyze interaction protocol                                โ”‚  โ”‚
โ”‚  โ”‚     โ”œโ”€ Generate Judge (่ฏ„ๆต‹ๆœบ)                                      โ”‚  โ”‚
โ”‚  โ”‚     โ”‚    โ””โ”€ Reads test data from file                              โ”‚  โ”‚
โ”‚  โ”‚     โ”‚    โ””โ”€ Interacts via stdin/stdout                             โ”‚  โ”‚
โ”‚  โ”‚     โ”‚    โ””โ”€ Returns: 0=AC, 1=WA, 2=PE                              โ”‚  โ”‚
โ”‚  โ”‚     โ””โ”€ Generate Data Generator (ๆ•ฐๆฎ็”Ÿๆˆๅ™จ)                         โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 2: Judge Validation (่ฏ„ๆต‹ๆœบ้ชŒ่ฏ)                                   โ”‚
โ”‚     JudgeValidator Agent verifies judge correctness                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 3: Solution Development (่งฃๆณ•ๅผ€ๅ‘)                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  InteractiveSolver Agent                                           โ”‚  โ”‚
โ”‚  โ”‚     โ”œโ”€ Analyze query strategy (Binary Search / Divide & Conquer)   โ”‚  โ”‚
โ”‚  โ”‚     โ”œโ”€ Estimate query count upper bound                            โ”‚  โ”‚
โ”‚  โ”‚     โ”œโ”€ Write interactive solution with flush=True                  โ”‚  โ”‚
โ”‚  โ”‚     โ””โ”€ Handle -1 error responses                                   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 4: Interactive Stress Test (ไบคไบ’ๅฏนๆ‹) - Default 100 tests         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  for i in range(100):                                              โ”‚  โ”‚
โ”‚  โ”‚      test_data = generator.generate()                              โ”‚  โ”‚
โ”‚  โ”‚      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                       โ”‚  โ”‚
โ”‚  โ”‚      โ”‚   Judge     โ”‚ โ—„โ”€โ”€โ”€โ”€โ”€โ–บ โ”‚   Solver    โ”‚  (IPC Communication)  โ”‚  โ”‚
โ”‚  โ”‚      โ”‚  (stdin)    โ”‚         โ”‚  (stdout)   โ”‚                       โ”‚  โ”‚
โ”‚  โ”‚      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                       โ”‚  โ”‚
โ”‚  โ”‚      if judge.exit_code != 0: return FAILED                        โ”‚  โ”‚
โ”‚  โ”‚  return PASSED                                                     โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 5: C++ Translation + Feedback Loop                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3. ้€š่ฎฏ้ข˜ๆจกๅผ (Communication Mode)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      Communication Problem Solver                         โ”‚
โ”‚                        (Alice & Bob Protocol)                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 1: Preprocessing (้ข„ๅค„็†้˜ถๆฎต)                                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  CommunicationPreprocessor Agent generates:                        โ”‚  โ”‚
โ”‚  โ”‚     โ”œโ”€ Data Generator (ๆ•ฐๆฎ็”Ÿๆˆๅ™จ)                                  โ”‚  โ”‚
โ”‚  โ”‚     โ”œโ”€ Middleware (ไธญ้—ดไปถ) - transforms Alice output โ†’ Bob input   โ”‚  โ”‚
โ”‚  โ”‚     โ””โ”€ Verifier (้ชŒ่ฏๅ™จ) - checks final answer correctness         โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 2: Solution Development (่งฃๆณ•ๅผ€ๅ‘)                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  CommunicationSolver Agent writes single file handling both phases โ”‚  โ”‚
โ”‚  โ”‚                                                                    โ”‚  โ”‚
โ”‚  โ”‚  def main():                                                       โ”‚  โ”‚
โ”‚  โ”‚      phase = input()  # "first" or "second"                        โ”‚  โ”‚
โ”‚  โ”‚      if phase == "first":                                          โ”‚  โ”‚
โ”‚  โ”‚          solve_alice()  # Process original input                   โ”‚  โ”‚
โ”‚  โ”‚      else:                                                         โ”‚  โ”‚
โ”‚  โ”‚          solve_bob()    # Process transformed input                โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 3: Two-Phase Execution (ไธค้˜ถๆฎตๆ‰ง่กŒ)                                โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚                                                                    โ”‚  โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚  โ”‚
โ”‚  โ”‚  โ”‚  Original   โ”‚โ”€โ”€โ”€โ–บโ”‚   Solver    โ”‚โ”€โ”€โ”€โ–บโ”‚   Alice     โ”‚            โ”‚  โ”‚
โ”‚  โ”‚  โ”‚   Input     โ”‚    โ”‚  (Alice)    โ”‚    โ”‚   Output    โ”‚            โ”‚  โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚  โ”‚
โ”‚  โ”‚                                               โ”‚                    โ”‚  โ”‚
โ”‚  โ”‚                                               โ–ผ                    โ”‚  โ”‚
โ”‚  โ”‚                                        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚  โ”‚
โ”‚  โ”‚                                        โ”‚ Middleware  โ”‚            โ”‚  โ”‚
โ”‚  โ”‚                                        โ”‚ (Transform) โ”‚            โ”‚  โ”‚
โ”‚  โ”‚                                        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚  โ”‚
โ”‚  โ”‚                                               โ”‚                    โ”‚  โ”‚
โ”‚  โ”‚                                               โ–ผ                    โ”‚  โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”‚  โ”‚
โ”‚  โ”‚  โ”‚   Final     โ”‚โ—„โ”€โ”€โ”€โ”‚   Solver    โ”‚โ—„โ”€โ”€โ”€โ”‚    Bob      โ”‚            โ”‚  โ”‚
โ”‚  โ”‚  โ”‚   Answer    โ”‚    โ”‚   (Bob)     โ”‚    โ”‚   Input     โ”‚            โ”‚  โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚  โ”‚
โ”‚  โ”‚                                                                    โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 4: Communication Stress Test (้€š่ฎฏๅฏนๆ‹) - Default 100 tests       โ”‚
โ”‚     Verifier checks: Final Answer == Expected Answer                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Phase 5: C++ Translation + Feedback Loop                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ไพ่ต–

  • Python >= 3.10
  • google-genai >= 1.0.0
  • pydantic >= 2.0
  • python-dotenv >= 1.2.1

Ethical Declaration | ่ฏšไฟกๅฎฃ่จ€ | ๅ›ๅญไน‹็ด„

English

The sword forged for the training hall shall not be drawn where honor hangs in the balance.

This project exists as a crucible for learning โ€” to witness the elegant dance of algorithms, to comprehend the silent poetry woven into logic. It is a mirror, not a mask; a teacher, not a surrogate.

To wield it in competition is to claim a crown of smoke, for victory without struggle is but the shadow of triumph. The laurels earned through borrowed wisdom shall wither before they are worn.

Let your mind be the true solver. Let this tool be merely the whetstone upon which you sharpen your own blade.

ไธญๆ–‡

ไน ๆญฆไน‹ๅ‰‘๏ผŒไธๅฏๆ‰งไบŽ่ฎบ้“ไน‹ๅ ‚๏ผ›็ปƒๅ…ตไน‹ๅ™จ๏ผŒไธๅฏๆŒไบŽไบ‰้”‹ไน‹ๅœบใ€‚

ๆญค้กน็›ฎไธบๅญฆไน ่€Œ็”Ÿโ€”โ€”่ฎฉไฝ ๅพ—ไปฅ็ชฅ่ง็ฎ—ๆณ•็š„ๆ›ผๅฆ™ไน‹่ˆž๏ผŒ้ข†ๆ‚Ÿ้€ป่พ‘ๆทฑๅค„็š„ๆ— ๅฃฐ่ฏ—็ฏ‡ใ€‚ๅฎƒๆ˜ฏไธ€้ข้•œๅญ๏ผŒ่€Œ้žไธ€ๅผ ้ขๅ…ท๏ผ›ๆ˜ฏไธ€ไฝๅฏผๅธˆ๏ผŒ่€Œ้žๆ›ฟ่บซใ€‚

่‹ฅไปฅๆญคๅ™จ็ซžไบŽ่ต›ๅœบ๏ผŒๆ‰€ๆ‘˜ไธ่ฟ‡ๆ˜ฏ็ƒŸไบ‘็ผ–็ป‡็š„ๆก‚ๅ† ใ€‚ไธ็ป็ฃจ็ บ็š„่ƒœๅˆฉ๏ผŒไธ่ฟ‡ๆ˜ฏ่ฃ่€€็š„ๅ€’ๅฝฑใ€‚ๅ€Ÿๆฅ็š„ๆ™บๆ…งๆ‰€้“ธ็š„ๅ‹‹็ซ ๏ผŒๆœชๅŠไฝฉๆˆดไพฟๅทฒ้ปฏ็„ถๅคฑ่‰ฒใ€‚

ๆ„ฟๅ›ไปฅๅฟƒไธบๅ‰‘๏ผŒไปฅๆญคไธบ็ บ็Ÿณ๏ผŒ็ฃจ็ บๅฑžไบŽ่‡ชๅทฑ็š„้”‹่Š’ใ€‚

ๆ–‡่จ€

ๅ™จ่€…๏ผŒ็ฟ’่—ไน‹่ณ‡ไนŸ๏ผŒ้ž็ˆญๅ‹ไน‹ๅ…ทไนŸใ€‚

ๆญคๅ™จไน‹้€ ๏ผŒ็‚บๆ˜Ž็ฎ—็†ใ€็ชฎ้‚่ผฏไน‹ๅฅงไนŸใ€‚่‹ฅๆŒไปฅ่ตด่ฉฆ๏ผŒ็ซŠไบบไน‹ๅŠŸ็‚บๅทฑๆœ‰๏ผŒๆ˜ฏๆฌบไธ–็›œๅไน‹่กŒ๏ผŒๅ›ๅญๆ‰€ไธ้ฝ’ไนŸใ€‚

ๅคไบบไบ‘๏ผšใ€Œๅญธๅฆ‚้€†ๆฐด่กŒ่ˆŸ๏ผŒไธ้€ฒๅ‰‡้€€ใ€‚ใ€ๅˆไบ‘๏ผšใ€Œๅ›ๅญๅ‹™ๆœฌ๏ผŒๆœฌ็ซ‹่€Œ้“็”Ÿใ€‚ใ€

ๅคซไปฅๆขฐไปฃๅฟƒ๏ผŒ็Œถ้ฃฒ้ด†ๆญขๆธด๏ผŒ้›–่งฃไธ€ๆ™‚ไน‹ๅ›ฐ๏ผŒ็ต‚่ฒฝ็„ก็ชฎไน‹ๆ‚ฃใ€‚ๆ‰€ๅพ—่€…๏ผŒ่™›ๅไนŸ๏ผ›ๆ‰€ๅคฑ่€…๏ผŒ็œŸๅญธไนŸใ€‚ๅๅฏๆฌบไบบ๏ผŒๅญธไธๅฏๆฌบๅทฑใ€‚

้ก˜่ซธๅ›ไปฅ่ช ็‚บๆœฌ๏ผŒไปฅๅญธ็‚บๅ…ˆใ€‚ๅ™จๅฏๅŠฉๅญธ๏ผŒไธๅฏไปฃๅญธ๏ผ›ๆŠ€ๅฏๅ€Ÿ้‘’๏ผŒไธๅฏ็ซŠๅ–ใ€‚ๆ…Žไน‹ๆˆ’ไน‹ใ€‚


License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%