CSES - Datatähti 2016 alku - Results
Submission details
Task:Osajono
Sender:ollpu
Submission time:2015-10-10 11:44:59 +0300
Language:Python2
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.06 s1details
#20.06 s1details
#30.07 s1details
#40.06 s1details
#50.06 s1details
#60.06 s2details
#70.06 s2details
#80.06 s2details
#90.07 s2details
#100.05 s2details
#110.06 s3details
#120.06 s3details
#130.06 s3details
#140.06 s3details
#150.06 s3details

Code

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from sys import stdin
from sys import stdout
# import profile # debug

maxint = sys.maxint

def readline():
    return stdin.readline().strip()

line1 = readline().split(' ')
# Kaupunkeja
n = int(line1[0])
# Lentoja
m = int(line1[1])

# Tuple indexes
fl_from = 0
fl_to = 1
fl_price = 2

ct_total_price_even = 0
ct_even_price_set = 1
ct_total_price_odd = 2
ct_odd_price_set = 3
ct_total_price = 4
ct_calculated = 5
ct_con_to = 6
ct_in_uncalc = 7
ct_aid = 8

def init_city(aid):
    return [maxint, False, maxint, False, maxint, False, [], False, aid]

# class City:
#     def __init__(self, aid):
#         self.total_price_even = maxint
#         self.even_price_set = False
#         self.total_price_odd = maxint
#         self.odd_price_set = False
#         self.total_price = maxint
#         self.calculated = False
#         self.con_to = []
#         self.in_uncalc = False
#         self.aid = aid


def run():
    cities = []
    for c in xrange(n):
        cities.append(init_city(c))
        


    for f in xrange(m):
        row = readline().split(' ')
        flight = (cities[int(row[0])-1], cities[int(row[1])-1], int(row[2]))
        flight[fl_from][ct_con_to].append(flight)

    # Purge all unnecessary cities
    removes = []
    for city_i in xrange(1, n-1):
        city = cities[city_i]
        if len(city[ct_con_to]) == 0:
            removes.append(city)

    for city in removes:
        cities.remove(city)

    start = cities[0]
    end = cities[-1]
    current = start
    
    uncalculated = [current]

    current[ct_total_price_even] = 0
    current[ct_even_price_set] = True
    
    
    def select_next():
        if len(uncalculated) != 0:
            smallest_price = maxint
            for city in reversed(uncalculated):
                # cityprice = city.total_price_even + city.total_price_odd
                cityprice = city[ct_total_price]
                if cityprice < smallest_price:
                    smallest = city
                    smallest_price = cityprice
            
            return smallest
    
    found = False
    while not found:
        
        for flight in current[ct_con_to]:
            city = flight[fl_to]
            price_changed = False
            if current[ct_even_price_set]:
                new_odd_price = current[ct_total_price_even] + flight[fl_price]
                if new_odd_price < city[ct_total_price_odd]:
                    city[ct_total_price_odd] = new_odd_price
                    city[ct_odd_price_set] = True
                    price_changed = True
            
            if current[ct_odd_price_set]:
                new_even_price = current[ct_total_price_odd]
                if new_even_price < city[ct_total_price_even]:
                    city[ct_total_price_even] = new_even_price
                    city[ct_even_price_set] = True
                    price_changed = True
            if price_changed:
                price = city[ct_total_price] = min(city[ct_total_price_even], city[ct_total_price_odd])
                if city[ct_calculated]:
                    city[ct_calculated] = False
                    uncalculated.append(city)
                    city[ct_in_uncalc] = True
                if not city[ct_in_uncalc]:
                    uncalculated.append(city)
                    city[ct_in_uncalc] = True
        
        uncalculated.remove(current)
        current[ct_calculated] = True
        
        if current[ct_aid] == end[ct_aid]:
            found = True
            print(end[ct_total_price])
            break
        
        current = select_next()
# profile.run('run()')
run()

Test details

Test 1

Group: 1

Verdict:

input
BBBAABBBAAAABBAAAABAABAABBBBBB...

correct output
2554

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'BBBAABBBAAAABBAAAABAABAABBBBBBAABBBBBAAABAAABABAABBABBAAABABABABBABBBBABABAABBAAABBBBABBBBAABBAABAAA'

Test 2

Group: 1

Verdict:

input
GDFVYWQCZAFGICSXOSWBZMGPDBSSVL...

correct output
299

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'GDFVYWQCZAFGICSXOSWBZMGPDBSSVLFMEYWRESVQFYWMOLSCEADYZHZIIYEJVIPCLSFMYNKXTOWYSRDPDVNLQNLFPSXVHYKKWHZW'

Test 3

Group: 1

Verdict:

input
AAAAAAAAAAAAAAAAAAAAAAAAAZAAAA...

correct output
4314

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'AAAAAAAAAAAAAAAAAAAAAAAAAZAAAAZAZAZAAAAAAAAAAAAAAAAAAAAAZZAAAAAAAAAAAZAAAAAZAAAAAAAAAAAAAAAAAAAAAAAA'

Test 4

Group: 1

Verdict:

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
4231

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZZAAAAAAZAAAAZAAAAAZAAAAAAAAZAAAAAAAAAAAZAAAZAAAAAAAAAAAAAZAAAA'

Test 5

Group: 1

Verdict:

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
5050

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'

Test 6

Group: 2

Verdict:

input
BBABABBBABBAABBABBABAABAAABABA...

correct output
6253029

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'BBABABBBABBAABBABBABAABAAABABAABBBAABAABBBBBBBAABBABBBABBABBAAABBAABABABBABBBBBABBBBBBBABABABBBAABBABABAAABBBAABABBABBBBABBBABBBAABBBABBBBBBBAAABAAAABAABBBBAAABABBBABAABBBBABABAABAAABAABBABABAAAABBAAA'

Test 7

Group: 2

Verdict:

input
RBKJMLDVQMKHYKCNDIVVKOMFUXTFMG...

correct output
485173

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'RBKJMLDVQMKHYKCNDIVVKOMFUXTFMGICWVUWKXCYRWJQMRSLJNGZTCGMDCQVTPWAYSXXVTCYJEYQCUUPTWKJBHZXVVGBEJOOYDSHTLKXHWCMKCHREGXSGDYECFJMMWEGCWSHWWWDIXJEGJSRLNMTQEJDAVMAFQPOZSLNWVWUDQWTKNMGIUFTDVDMLZIHVEMQHVCWJSED'

Test 8

Group: 2

Verdict:

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
12427725

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'

Test 9

Group: 2

Verdict:

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
12467549

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'

Test 10

Group: 2

Verdict:

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
12502500

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'

Test 11

Group: 3

Verdict:

input
BAAAAABABBABAABAABABABBBABBAAB...

correct output
2500051369

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'BAAAAABABBABAABAABABABBBABBAABBBABBBABBBBBABBBBAAAAAABABAAAAAAABAABAABABBBAAABABAAAABABABAABBAAAABABAAABABBBBABBBBABABAAAAAABAAABBBBBBABBAAAABABABAABBABABAAABBBAABBAABABBABABAABABABBBBBABBBABAABAABABB'

Test 12

Group: 3

Verdict:

input
ABBURXDRVXAYBPXXOQZNYHLWGUEEWR...

correct output
192407124

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'ABBURXDRVXAYBPXXOQZNYHLWGUEEWRNOMCJGFEMRRSCURKRFGMOLHWBPJQSREDUVUHRESNQNYKFMBSNIUTFFZWALMYHECUOTYXVDYMLZYZCYDMYIKGCYYXXTNGJDCZPYFGHDBCPZCFWSJOCGXMJAFNIKHPBMNUZCDHYNEGXSPHYGIUXWIKQFKLYCXKNHDYCGUECOFTPT'

Test 13

Group: 3

Verdict:

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
4998050400

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'

Test 14

Group: 3

Verdict:

input
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
4998850144

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'

Test 15

Group: 3

Verdict:

input
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
5000050000

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 16, in <module>
    n = int(line1[0])
ValueError: invalid literal for int() with base 10: 'QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'