-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
69a3473
commit ef181d1
Showing
1,483 changed files
with
12,843,153 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
*.aux | ||
*.out | ||
*.log | ||
*.gch | ||
*.DS_Store | ||
*.bcf | ||
*.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# swedish-olympiad-2021-public | ||
|
||
Testdata och domarlösningar för 2021 års programmeringsolympiad. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#!/usr/bin/env python3 | ||
|
||
import sys | ||
import random | ||
|
||
def cmdlinearg(name, default=None): | ||
for arg in sys.argv: | ||
if arg.startswith(name + "="): | ||
return arg.split("=")[1] | ||
assert default is not None, name | ||
return default | ||
|
||
random.seed(int(cmdlinearg('seed', sys.argv[-1]))) | ||
n = int(cmdlinearg('n')) | ||
k = int(cmdlinearg('k')) | ||
|
||
k -= k%3 | ||
k3 = k//3 | ||
|
||
print(n,n-1,k) | ||
|
||
for i in range(1, k3+1): | ||
print(n-k+i, n-k+i+k3) | ||
print(n-k+i, n-k+i+2*k3) | ||
if i < k3: | ||
print(n-k+i+k3, n-k+i+k3+1) | ||
|
||
for i in range(1, n-k+1): | ||
print(i, n) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
#!/usr/bin/env python3 | ||
|
||
import sys | ||
import random | ||
|
||
def cmdlinearg(name, default=None): | ||
for arg in sys.argv: | ||
if arg.startswith(name + "="): | ||
return arg.split("=")[1] | ||
assert default is not None, name | ||
return default | ||
|
||
random.seed(int(cmdlinearg('seed', sys.argv[-1]))) | ||
n = int(cmdlinearg('n')) | ||
m = int(cmdlinearg('m')) | ||
k = int(cmdlinearg('k')) | ||
b = int(cmdlinearg('b')) | ||
same = int(cmdlinearg('same')) | ||
|
||
edge_set = set() | ||
edges = [] | ||
|
||
|
||
stop = set() | ||
if same == 1: | ||
for i in range(n-k+1, n): | ||
if i%(k//b) == (n-k)%(k//b): | ||
stop.add(i) | ||
b = len(stop)+1 | ||
else: | ||
stop = set(random.sample(range(n-k+1,n), b-1)) | ||
|
||
for i in range(n-k+1, n): | ||
if i not in stop: | ||
edges.append((i, i+1)) | ||
edge_set.add((i, i+1)) | ||
edge_set.add((i+1, i)) | ||
m -= 1 | ||
|
||
for i in [*stop, n]: | ||
edges.append((1, i)) | ||
edge_set.add((i, 1)) | ||
edge_set.add((1, i)) | ||
m -= 1 | ||
|
||
for i in range(2, n-k+1): | ||
j = random.randint(n-k+1, n) | ||
edges.append((i, j)) | ||
edge_set.add((i, j)) | ||
edge_set.add((j, i)) | ||
m -= 1 | ||
|
||
while m > 0: | ||
i = random.randint(1, n-k) | ||
j = random.randint(n-k+1, n) | ||
while (i,j) in edge_set: | ||
i = random.randint(1, n-k) | ||
j = random.randint(n-k+1, n) | ||
edges.append((i,j)) | ||
edge_set.add((i,j)) | ||
edge_set.add((j,i)) | ||
m -= 1 | ||
|
||
print(n,len(edges),k) | ||
for (i,j) in edges: | ||
print(i, j) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#!/usr/bin/env python3 | ||
|
||
import sys | ||
import random | ||
|
||
def cmdlinearg(name, default=None): | ||
for arg in sys.argv: | ||
if arg.startswith(name + "="): | ||
return arg.split("=")[1] | ||
assert default is not None, name | ||
return default | ||
|
||
random.seed(int(cmdlinearg('seed', sys.argv[-1]))) | ||
n = int(cmdlinearg('n')) | ||
mid = int(cmdlinearg('mid')) | ||
k = int(cmdlinearg('k')) | ||
|
||
print(n,n-1,k) | ||
|
||
for i in range(0, k-2): | ||
print(n-1, n-2-i) | ||
print(mid, n-1) | ||
for i in range(1, n-k+1): | ||
print(i, n) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#!/usr/bin/env python3 | ||
|
||
import sys | ||
import random | ||
|
||
def cmdlinearg(name, default=None): | ||
for arg in sys.argv: | ||
if arg.startswith(name + "="): | ||
return arg.split("=")[1] | ||
assert default is not None, name | ||
return default | ||
|
||
random.seed(int(cmdlinearg('seed', sys.argv[-1]))) | ||
n = int(cmdlinearg('n')) | ||
k = int(cmdlinearg('k')) | ||
b = int(cmdlinearg('b')) | ||
|
||
big = list(range(n-k+1,n+1)) | ||
medium = list(range(n-k-b,n-k+1)) | ||
small = list(range(1,n-k-b)) | ||
|
||
print(n,n-1,k) | ||
|
||
b_size = k//b | ||
medium = n-k | ||
for i in range(n-k+1,n): | ||
if i%b_size == 0: | ||
print(i, medium) | ||
print(medium, i+1) | ||
medium -= 1 | ||
else: | ||
print(i, i+1) | ||
while medium > 0: | ||
print(medium, n) | ||
medium -= 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#!/usr/bin/env python3 | ||
|
||
import sys | ||
import random | ||
|
||
def cmdlinearg(name, default=None): | ||
for arg in sys.argv: | ||
if arg.startswith(name + "="): | ||
return arg.split("=")[1] | ||
assert default is not None, name | ||
return default | ||
|
||
random.seed(int(cmdlinearg('seed', sys.argv[-1]))) | ||
n = int(cmdlinearg('n')) | ||
m = int(cmdlinearg('m')) | ||
k = int(cmdlinearg('k')) | ||
|
||
edge_set = set() | ||
edges = [] | ||
|
||
for i in range(1, n): | ||
root = random.randrange(0, i) | ||
edges.append((root, i)) | ||
edge_set.add((root, i)) | ||
edge_set.add((i, root)) | ||
|
||
for i in range(0, m-n+1): | ||
i = random.randrange(0, n) | ||
j = random.randrange(0, n) | ||
while i == j or (i,j) in edge_set: | ||
i = random.randrange(0, n) | ||
j = random.randrange(0, n) | ||
edges.append((i, j)) | ||
edge_set.add((i, j)) | ||
edge_set.add((j, i)) | ||
|
||
print(n,m,k) | ||
for (i,j) in edges: | ||
print(i+1, j+1) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#!/usr/bin/env python3 | ||
|
||
import sys | ||
import random | ||
|
||
def cmdlinearg(name, default=None): | ||
for arg in sys.argv: | ||
if arg.startswith(name + "="): | ||
return arg.split("=")[1] | ||
assert default is not None, name | ||
return default | ||
|
||
random.seed(int(cmdlinearg('seed', sys.argv[-1]))) | ||
n = int(cmdlinearg('n')) | ||
mid = int(cmdlinearg('mid')) | ||
k = int(cmdlinearg('k')) | ||
|
||
print(n,n-1,k) | ||
for i in range(0, n): | ||
if i+1 != mid: | ||
print(mid, i+1) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
#!/usr/bin/env bash | ||
|
||
PPATH=$(realpath ..) | ||
. ../../../testdata_tools/gen.sh | ||
|
||
#ulimit -s unlimited | ||
|
||
use_solution nils.cpp | ||
|
||
compile gen_random.py | ||
compile gen_star.py | ||
compile gen_doublestar.py | ||
compile gen_path.py | ||
compile gen_abc.py | ||
compile gen_bipartish.py | ||
|
||
MAXN=200000 | ||
MAXM=400000 | ||
|
||
samplegroup | ||
limits max_n=$MAXN max_m=$MAXM max_k=$MAXN | ||
sample 1 | ||
sample 2 | ||
|
||
group group1 12 | ||
limits max_n=$MAXN max_m=$MAXM max_k=1 | ||
tc g1-rand-1 gen_random n=10 m=10 k=1 | ||
tc g1-rand-2 gen_random n=$MAXN m=$MAXM k=1 | ||
tc g1-star-3 gen_star n=2 mid=2 k=1 | ||
tc g1-star-4 gen_star n=$MAXN mid=1 k=1 | ||
tc g1-star-5 gen_star n=$MAXN mid=$MAXN k=1 | ||
tc g1-star-6 gen_star n=$MAXN mid=73 k=1 | ||
tc g1-star-7 gen_star n=$MAXN mid=$(($MAXN-1)) k=1 | ||
|
||
group group2 15 | ||
limits max_n=15 max_m=$MAXM max_k=$MAXN | ||
tc 1 | ||
tc 2 | ||
tc g2-rand-3 gen_random n=15 m=30 k=2 | ||
tc g2-rand-4 gen_random n=15 m=20 k=5 | ||
tc g2-rand-5 gen_random n=15 m=15 k=14 | ||
tc g2-rand-6 gen_random n=15 m=50 k=1 | ||
tc g2-star-7 gen_star n=2 mid=2 k=1 | ||
tc g2-star-8 gen_star n=15 mid=15 k=1 | ||
tc g2-star-9 gen_star n=15 mid=1 k=13 | ||
tc g2-doublestar-10 gen_doublestar n=14 mid=1 k=7 | ||
tc g2-path-11 gen_path n=15 k=8 b=4 | ||
tc g2-path-12 gen_path n=15 k=9 b=3 | ||
tc g2-bipart-13 gen_bipartish n=15 m=20 k=7 b=4 same=0 | ||
tc g2-bipart-14 gen_bipartish n=15 m=25 k=7 b=6 same=0 | ||
tc g2-star-15 gen_star n=15 mid=10 k=5 | ||
|
||
group group3 25 | ||
limits max_n=2000 max_m=4000 max_k=$MAXN | ||
include_group group2 | ||
|
||
tc g3-rand-1 gen_random n=2000 m=4000 k=10 | ||
tc g3-rand-2 gen_random n=2000 m=4000 k=40 | ||
tc g3-rand-3 gen_random n=2000 m=4000 k=200 | ||
tc g3-rand-4 gen_random n=2000 m=4000 k=1000 | ||
tc g3-rand-5 gen_random n=2000 m=2100 k=1972 | ||
tc g3-doublestar-6 gen_doublestar n=2000 mid=1 k=1000 | ||
tc g3-doublestar-7 gen_doublestar n=2000 mid=3 k=1000 | ||
tc g3-doublestar-8 gen_doublestar n=2000 mid=1 k=1003 | ||
tc g3-path-9 gen_path n=2000 k=1800 b=40 | ||
tc g3-path-10 gen_path n=2000 k=1600 b=100 | ||
tc g3-abc-11 gen_abc n=2000 k=1998 | ||
tc g3-bipart-12 gen_bipartish n=2000 m=4000 k=1000 b=3 same=0 | ||
tc g3-bipart-13 gen_bipartish n=2000 m=4000 k=1000 b=7 same=0 | ||
tc g3-bipart-14 gen_bipartish n=2000 m=4000 k=1000 b=10 same=0 | ||
tc g3-bipart-15 gen_bipartish n=2000 m=4000 k=1000 b=200 same=1 | ||
tc g3-bipart-16 gen_bipartish n=2000 m=3000 k=1000 b=500 same=1 | ||
tc g3-star-17 gen_star n=2000 mid=1000 k=1000 | ||
|
||
group group4 13 | ||
limits max_n=$MAXN max_m=$MAXM max_k=15 | ||
include_group group2 | ||
include_group group1 | ||
|
||
tc g4-rand-1 gen_random n=$MAXN m=$MAXM k=15 | ||
tc g4-rand-2 gen_random n=$MAXN m=$MAXM k=5 | ||
tc g4-rand-3 gen_random n=$MAXN m=$MAXM k=1 | ||
tc g4-star-4 gen_star n=$MAXN mid=$MAXN k=15 | ||
tc g4-star-5 gen_star n=$MAXN mid=$(($MAXN-14)) k=15 | ||
tc g4-star-6 gen_star n=$MAXN mid=$(($MAXN-15)) k=15 | ||
tc g4-doublestar-7 gen_doublestar n=$MAXN mid=1 k=15 | ||
tc g4-bipart-8 gen_bipartish n=$MAXN m=$MAXM k=15 b=2 same=0 | ||
tc g4-bipart-9 gen_bipartish n=$MAXN m=$MAXM k=15 b=3 same=0 | ||
tc g4-bipart-10 gen_bipartish n=$MAXN m=$MAXM k=15 b=5 same=0 | ||
tc g4-bipart-11 gen_bipartish n=$MAXN m=$MAXM k=15 b=5 same=1 | ||
tc g4-bipart-12 gen_bipartish n=$MAXN m=$MAXM k=15 b=13 same=0 | ||
|
||
group group5 35 | ||
limits max_n=$MAXN max_m=$MAXM max_k=$MAXN | ||
include_group group3 | ||
include_group group4 | ||
|
||
tc g5-rand-1 gen_random n=$MAXN m=$MAXM k=$(($MAXN-1)) | ||
tc g5-rand-2 gen_random n=$MAXN m=$MAXM k=$(($MAXN/2)) | ||
tc g5-rand-3 gen_random n=$MAXN m=$MAXM k=$(($MAXN/3)) | ||
tc g5-rand-4 gen_random n=$MAXN m=$MAXM k=$(($MAXN/10)) | ||
tc g5-star-5 gen_star n=$MAXN mid=1 k=$(($MAXN-2)) | ||
tc g5-doublestar-6 gen_doublestar n=$MAXN mid=1 k=$(($MAXN/2)) | ||
tc g5-doublestar-7 gen_doublestar n=$MAXN mid=3 k=$(($MAXN/2)) | ||
tc g5-doublestar-8 gen_doublestar n=$MAXN mid=1 k=$(($MAXN/2+3)) | ||
tc g5-path-9 gen_path n=$MAXN k=$(($MAXN/2)) b=300 | ||
tc g5-path-10 gen_path n=$MAXN k=$(($MAXN-10000)) b=1000 | ||
tc g5-abc-11 gen_abc n=$MAXN k=$(($MAXN-2)) | ||
tc g5-bipart-12 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/2)) b=3 same=0 | ||
tc g5-bipart-13 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/2)) b=10 same=0 | ||
tc g5-bipart-14 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/2)) b=15 same=0 | ||
tc g5-bipart-15 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/2)) b=30 same=0 | ||
tc g5-bipart-16 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/2)) b=50 same=0 | ||
tc g5-bipart-17 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/2)) b=100 same=1 | ||
tc g5-bipart-18 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/2)) b=5000 same=1 | ||
tc g5-bipart-19 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/2)) b=$(($MAXN/3)) same=1 | ||
tc g5-bipart-20 gen_bipartish n=$MAXN m=$MAXM k=$(($MAXN/5)) b=500 same=1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
2 | ||
4 6 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
7 10 3 | ||
3 1 | ||
3 7 | ||
3 5 | ||
3 2 | ||
1 7 | ||
7 5 | ||
5 2 | ||
2 6 | ||
6 4 | ||
4 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
-1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
7 10 2 | ||
7 1 | ||
7 5 | ||
7 3 | ||
7 6 | ||
1 5 | ||
5 3 | ||
3 4 | ||
4 6 | ||
6 2 | ||
2 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
on_reject: continue | ||
range: 0 0 | ||
accept_score: 0 | ||
grader_flags: first_error | ||
input_validator_flags: max_n=200000 max_m=400000 max_k=200000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
1 | ||
1 |
Oops, something went wrong.