more updates
This commit is contained in:
parent
286d21cd0e
commit
c4a7dc8215
10 changed files with 311 additions and 73 deletions
|
|
@ -1,2 +0,0 @@
|
|||
-O2
|
||||
-DLOCAL
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
-g3
|
||||
-fsanitize=address,undefined
|
||||
-DLOCAL
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import sys
|
||||
|
||||
import requests
|
||||
|
|
@ -57,12 +58,17 @@ def scrape(url: str) -> list[tuple[str, str]]:
|
|||
|
||||
def main():
|
||||
if len(sys.argv) != 3:
|
||||
print("Usage: atcoder.py <contest_id> <problem_letter>", file=sys.stderr)
|
||||
print("Example: atcoder.py abc042 a", file=sys.stderr)
|
||||
result = {
|
||||
"success": False,
|
||||
"error": "Usage: atcoder.py <contest_id> <problem_letter>",
|
||||
"problem_id": None,
|
||||
}
|
||||
print(json.dumps(result))
|
||||
sys.exit(1)
|
||||
|
||||
contest_id = sys.argv[1]
|
||||
problem_letter = sys.argv[2]
|
||||
problem_id = contest_id + problem_letter
|
||||
|
||||
url = parse_problem_url(contest_id, problem_letter)
|
||||
print(f"Scraping: {url}", file=sys.stderr)
|
||||
|
|
@ -70,17 +76,27 @@ def main():
|
|||
tests = scrape(url)
|
||||
|
||||
if not tests:
|
||||
print(f"No tests found for {contest_id} {problem_letter}", file=sys.stderr)
|
||||
result = {
|
||||
"success": False,
|
||||
"error": f"No tests found for {contest_id} {problem_letter}",
|
||||
"problem_id": problem_id,
|
||||
"url": url,
|
||||
}
|
||||
print(json.dumps(result))
|
||||
sys.exit(1)
|
||||
|
||||
print("---INPUT---")
|
||||
print(len(tests))
|
||||
test_cases = []
|
||||
for input_data, output_data in tests:
|
||||
print(input_data)
|
||||
print("---OUTPUT---")
|
||||
for input_data, output_data in tests:
|
||||
print(output_data)
|
||||
print("---END---")
|
||||
test_cases.append({"input": input_data, "output": output_data})
|
||||
|
||||
result = {
|
||||
"success": True,
|
||||
"problem_id": problem_id,
|
||||
"url": url,
|
||||
"test_cases": test_cases,
|
||||
}
|
||||
|
||||
print(json.dumps(result))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import sys
|
||||
|
||||
import cloudscraper
|
||||
|
|
@ -73,31 +74,43 @@ def scrape_sample_tests(url: str):
|
|||
|
||||
def main():
|
||||
if len(sys.argv) != 3:
|
||||
print("Usage: codeforces.py <contest_id> <problem_letter>", file=sys.stderr)
|
||||
print("Example: codeforces.py 1234 A", file=sys.stderr)
|
||||
result = {
|
||||
"success": False,
|
||||
"error": "Usage: codeforces.py <contest_id> <problem_letter>",
|
||||
"problem_id": None,
|
||||
}
|
||||
print(json.dumps(result))
|
||||
sys.exit(1)
|
||||
|
||||
contest_id = sys.argv[1]
|
||||
problem_letter = sys.argv[2]
|
||||
problem_id = contest_id + problem_letter.upper()
|
||||
|
||||
url = parse_problem_url(contest_id, problem_letter)
|
||||
tests = scrape_sample_tests(url)
|
||||
|
||||
if not tests:
|
||||
print(f"No tests found for {contest_id} {problem_letter}", file=sys.stderr)
|
||||
print(
|
||||
"Consider adding test cases manually to the io/ directory", file=sys.stderr
|
||||
)
|
||||
result = {
|
||||
"success": False,
|
||||
"error": f"No tests found for {contest_id} {problem_letter}",
|
||||
"problem_id": problem_id,
|
||||
"url": url,
|
||||
}
|
||||
print(json.dumps(result))
|
||||
sys.exit(1)
|
||||
|
||||
print("---INPUT---")
|
||||
print(len(tests))
|
||||
test_cases = []
|
||||
for input_data, output_data in tests:
|
||||
print(input_data)
|
||||
print("---OUTPUT---")
|
||||
for input_data, output_data in tests:
|
||||
print(output_data)
|
||||
print("---END---")
|
||||
test_cases.append({"input": input_data, "output": output_data})
|
||||
|
||||
result = {
|
||||
"success": True,
|
||||
"problem_id": problem_id,
|
||||
"url": url,
|
||||
"test_cases": test_cases,
|
||||
}
|
||||
|
||||
print(json.dumps(result))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import sys
|
||||
|
||||
import requests
|
||||
|
|
@ -57,31 +58,54 @@ def scrape(url: str) -> list[tuple[str, str]]:
|
|||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: cses.py <problem_id_or_url>", file=sys.stderr)
|
||||
result = {
|
||||
"success": False,
|
||||
"error": "Usage: cses.py <problem_id_or_url>",
|
||||
"problem_id": None,
|
||||
}
|
||||
print(json.dumps(result))
|
||||
sys.exit(1)
|
||||
|
||||
problem_input = sys.argv[1]
|
||||
url = parse_problem_url(problem_input)
|
||||
|
||||
if not url:
|
||||
print(f"Invalid problem input: {problem_input}", file=sys.stderr)
|
||||
print("Use either problem ID (e.g., 1068) or full URL", file=sys.stderr)
|
||||
result = {
|
||||
"success": False,
|
||||
"error": f"Invalid problem input: {problem_input}. Use either problem ID (e.g., 1068) or full URL",
|
||||
"problem_id": problem_input if problem_input.isdigit() else None,
|
||||
}
|
||||
print(json.dumps(result))
|
||||
sys.exit(1)
|
||||
|
||||
tests = scrape(url)
|
||||
|
||||
problem_id = (
|
||||
problem_input if problem_input.isdigit() else problem_input.split("/")[-1]
|
||||
)
|
||||
|
||||
if not tests:
|
||||
print(f"No tests found for {problem_input}", file=sys.stderr)
|
||||
result = {
|
||||
"success": False,
|
||||
"error": f"No tests found for {problem_input}",
|
||||
"problem_id": problem_id,
|
||||
"url": url,
|
||||
}
|
||||
print(json.dumps(result))
|
||||
sys.exit(1)
|
||||
|
||||
print("---INPUT---")
|
||||
print(len(tests))
|
||||
test_cases = []
|
||||
for input_data, output_data in tests:
|
||||
print(input_data)
|
||||
print("---OUTPUT---")
|
||||
for input_data, output_data in tests:
|
||||
print(output_data)
|
||||
print("---END---")
|
||||
test_cases.append({"input": input_data, "output": output_data})
|
||||
|
||||
result = {
|
||||
"success": True,
|
||||
"problem_id": problem_id,
|
||||
"url": url,
|
||||
"test_cases": test_cases,
|
||||
}
|
||||
|
||||
print(json.dumps(result))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue