# Is my problem new?

A semantic search engine for competitive programming problems that simplifies each problem statement with an LLM, embeds it, and finds similar problems across roughly 255,000 indexed statements from vjudge and other sources.

This tool searches a large corpus of competitive programming problems (synced with vjudge, plus incorporated QOJ OCR data and AtCoder) by first prompting an LLM to simplify each statement and strip background flavor text, then embedding both the simplified documents and search queries for vector similarity search, an approach the author notes only became practical once LLMs and embedding models became both good and cheap enough.

Deployment needs API keys for OpenAI, Together and Voyage, and runs offline-capable on a MacBook, though the underlying problem set itself is not distributed publicly for copyright reasons. Running it requires putting problem JSON files in a problems/ folder and running separate build steps for summaries, embeddings and language detection before serving; the technique is not limited to competitive programming and can be adapted to search other kinds of documents by changing the prompt.

Website: https://github.com/fjzzq2002/is-my-problem-new
