CSES - Datatähti 2025 alku - Results
Submission details
Task:Robotti
Sender:UsernameEino
Submission time:2024-11-03 21:37:32 +0200
Language:Python3 (PyPy3)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED30
#2ACCEPTED70
Test results
testverdicttimegroup
#1ACCEPTED0.04 s1, 2details
#2ACCEPTED0.04 s1, 2details
#3ACCEPTED0.04 s1, 2details
#4ACCEPTED0.04 s1, 2details
#5ACCEPTED0.04 s1, 2details
#6ACCEPTED0.04 s1, 2details
#7ACCEPTED0.04 s1, 2details
#8ACCEPTED0.04 s1, 2details
#9ACCEPTED0.04 s1, 2details
#10ACCEPTED0.04 s1, 2details
#11ACCEPTED0.04 s1, 2details
#12ACCEPTED0.05 s2details
#13ACCEPTED0.05 s2details
#14ACCEPTED0.06 s2details
#15ACCEPTED0.05 s2details
#16ACCEPTED0.05 s2details
#17ACCEPTED0.06 s2details
#18ACCEPTED0.07 s2details
#19ACCEPTED0.08 s2details
#20ACCEPTED0.08 s2details
#21ACCEPTED0.06 s2details
#22ACCEPTED0.07 s2details
#23ACCEPTED0.08 s2details
#24ACCEPTED0.08 s2details

Code

n=input()
m=input()

string = list(m)

global playing
playing = True

global rloc
rloc = 0

global pos
pos = 0

global matka
matka = 0

global pituus
pituus = 0

global kolik
kolik = 0

global vasen
vasen = 0
global oikea
oikea = 0

def etsir(x):
    global rloc
    for y in range(0,len(m)):
        if x[y] == 'R':
            rloc = y
            return y, 'R', rloc
    return -1

def etsi(x):
    global rloc
    global pos
    global pituus
    pos = [pos for pos, char in enumerate(x) if char == '*']
    for y in range(0,len(pos)):
        if pos[y] > rloc:
            pos.insert(y, rloc)
            rloc = y
            pituus = len(pos)
            return
    pos.insert(len(pos),rloc)
    rloc = len(pos)-1
    pituus = len(pos)
    return pos

def vertailu(x):
    global rloc
    global pos
    global matka
    global kolik
    global oikea
    global vasen
    global pituus
    if oikea == pituus-1:
        matka=matka+pos[rloc]-pos[vasen-1]
        vasen = vasen-1
        rloc=vasen
        kolik += 1
        return 1
    elif vasen == 0:
         matka=matka+pos[oikea+1]-pos[rloc]
         oikea = oikea+1
         rloc = oikea
         kolik += 1
         return 1
    elif pos[rloc]-pos[vasen-1] > pos[oikea+1]-pos[rloc]:
        matka = matka+pos[oikea+1]-pos[rloc]
        oikea = oikea+1
        rloc = oikea
        kolik += 1
        return 1
    elif pos[rloc]-pos[vasen-1] < pos[oikea+1]-pos[rloc]:
         matka = matka+pos[rloc]-pos[vasen-1]
         vasen = vasen-1
         rloc = vasen
         kolik += 1
         return 1
    else:
        return -1

tulos2 = etsir(string)
if tulos2 == -1:
    print(0,0)
    exit()

etsi(m)

oikea = rloc
vasen = rloc

if pituus > 1:
    tulos = 1
else:
    tulos = -1
while tulos != -1:
   tulos = vertailu(1)
   if vasen == 0 and oikea == pituus-1:
       tulos = -1

print(matka, kolik)

Test details

Test 1

Group: 1, 2

Verdict: ACCEPTED

input
1
R

correct output
0 0

user output
0 0

Test 2

Group: 1, 2

Verdict: ACCEPTED

input
10
...R......

correct output
0 0

user output
0 0

Test 3

Group: 1, 2

Verdict: ACCEPTED

input
10
**.R...***

correct output
12 5

user output
12 5

Test 4

Group: 1, 2

Verdict: ACCEPTED

input
10
***R******

correct output
0 0

user output
0 0

Test 5

Group: 1, 2

Verdict: ACCEPTED

input
1000
R................................

correct output
947 9

user output
947 9

Test 6

Group: 1, 2

Verdict: ACCEPTED

input
1000
.................................

correct output
886 9

user output
886 9

Test 7

Group: 1, 2

Verdict: ACCEPTED

input
1000
.....*..*....**..**..*......*....

correct output
1287 400

user output
1287 400

Test 8

Group: 1, 2

Verdict: ACCEPTED

input
1000
************.*****************...

correct output
0 0

user output
0 0

Test 9

Group: 1, 2

Verdict: ACCEPTED

input
1000
******************************...

correct output
0 0

user output
0 0

Test 10

Group: 1, 2

Verdict: ACCEPTED

input
1000
R*****************************...

correct output
999 999

user output
999 999

Test 11

Group: 1, 2

Verdict: ACCEPTED

input
1000
******************************...

correct output
999 999

user output
999 999

Test 12

Group: 2

Verdict: ACCEPTED

input
10000
.......**........*...........*...

correct output
10971 999

user output
10971 999

Test 13

Group: 2

Verdict: ACCEPTED

input
10000
*..*....*......*.....*..*........

correct output
9999 999

user output
9999 999

Test 14

Group: 2

Verdict: ACCEPTED

input
10000
*.*.*...**.*...*....**.**.**.....

correct output
18766 5000

user output
18766 5000

Test 15

Group: 2

Verdict: ACCEPTED

input
10000
R*****************************...

correct output
9999 9999

user output
9999 9999

Test 16

Group: 2

Verdict: ACCEPTED

input
10000
******************************...

correct output
9999 9999

user output
9999 9999

Test 17

Group: 2

Verdict: ACCEPTED

input
200000
.................................

correct output
0 0

user output
0 0

Test 18

Group: 2

Verdict: ACCEPTED

input
200000
.................................

correct output
299934 10000

user output
299934 10000

Test 19

Group: 2

Verdict: ACCEPTED

input
200000
**.***....**..**.....***.*..*....

correct output
299998 100000

user output
299998 100000

Test 20

Group: 2

Verdict: ACCEPTED

input
200000
******************************...

correct output
0 0

user output
0 0

Test 21

Group: 2

Verdict: ACCEPTED

input
200000
R................................

correct output
133765 3

user output
133765 3

Test 22

Group: 2

Verdict: ACCEPTED

input
200000
R................................

correct output
199982 5000

user output
199982 5000

Test 23

Group: 2

Verdict: ACCEPTED

input
200000
R*****************************...

correct output
199999 199999

user output
199999 199999

Test 24

Group: 2

Verdict: ACCEPTED

input
200000
******************************...

correct output
199999 199999

user output
199999 199999