CSES - Datatähti 2016 alku - Results
Submission details
Task:Tontti
Sender:ollpu
Submission time:2015-10-01 17:48:10
Language:Python2
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.05 s1details
#20.06 s1details
#30.05 s1details
#40.06 s1details
#50.06 s1details
#60.04 s2details
#70.05 s2details
#80.06 s2details
#90.06 s2details
#100.06 s2details
#110.06 s3details
#120.06 s3details
#130.07 s3details
#140.07 s3details
#150.05 s3details

Code

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

import sys
from sys import stdin
from sys import stdout

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

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

class Flight:
    def __init__(self, a, b, h):
        self.fr = a
        self.to = b
        self.price = int(h)

class City:
    def __init__(self, aid):
        self.total_price = sys.maxint
        self.calculated = False
        self.con_fr = []
        self.con_to = []
        self.stack = 0
        self.aid = aid
        self.remove = False
    def __eq__(self, other):
        return (isinstance(other, self.__class__)
            and self.aid == other.aid)


flights = []
cities = []
for c in xrange(n):
    cities.append(City(c))

uncalculated = list(cities)

for f in xrange(m):
    row = readline().split(' ')
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
    flights.append(flight)
    flight.fr.con_to.append(flight)
    flight.to.con_fr.append(flight)

# Purge all unnecessary cities
removes = []
for city_i in xrange(n):
    if city_i > 0:
        if city_i < len(cities)-1:
            city = cities[city_i]
            if len(city.con_to) == 0 or len(city.con_fr) == 0:
                for flight in city.con_to:
                    flights.remove(flight)
                for flight in city.con_fr:
                    flights.remove(flight)
                removes.append(city)
                print(city_i)
        else:
            break
for city in removes:
    cities.remove(city)

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

current.total_price = 0


found = False
while not found:
    for flight in current.con_to:
        city = flight.to
        if not city.calculated:
            if current.stack % 2 == 0:
                new_price = current.total_price + flight.price
            else:
                new_price = current.total_price
            if new_price < city.total_price:
                city.total_price = new_price
                city.stack = current.stack + 1
    uncalculated.remove(current)
    current.calculated = True
    if current == end:
        found = True
        print(current.total_price)
        break
    
    smallest_price = sys.maxint
    for city in uncalculated:
        if city.total_price < smallest_price:
            smallest = city
            smallest_price = city.total_price
    
    current = smallest

Test details

Test 1

Group: 1

Verdict:

input
10 10 1
......*...
.......*..
*..*....*.
*....*....
...

correct output
94

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '......*...'

Test 2

Group: 1

Verdict:

input
10 10 5
**********
**********
**********
**********
...

correct output
0

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '**********'

Test 3

Group: 1

Verdict:

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

correct output
4

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '**...*...*'

Test 4

Group: 1

Verdict:

input
10 10 5
****......
*.*.**..**
....*.*..*
...*.***..
...

correct output
16

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '****......'

Test 5

Group: 1

Verdict:

input
10 10 2
**.***..*.
...*.*....
.***.*...*
***.***..*
...

correct output
30

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '**.***..*.'

Test 6

Group: 2

Verdict:

input
500 500 1
.................................

correct output
9552040

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '........................................................................................................................................................................................................'

Test 7

Group: 2

Verdict:

input
500 500 5
.................................

correct output
1536063

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '........................................................................................................................................................................................................'

Test 8

Group: 2

Verdict:

input
500 500 25000
**...*...**..*.*..*.**.*..*.*....

correct output
288

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '**...*...**..*.*..*.**.*..*.*...*..*.**..**.*..*....******...***.**.*.*.**.***..*.***........*..**.******.***.*.**...**.***.*.....**.*....*.*.*.***..***********...**.*.*.*.*....*.**..*****..****.....*'

Test 9

Group: 2

Verdict:

input
500 500 12500
**.**.*..*...*.**...*.***........

correct output
786

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '**.**.*..*...*.**...*.***.....*.*..**.**.*.*.**..*.***.**.......**.*.**..***..*.***...*...*..***.**.****.***.******..**...*...**.....***...***..*..*.*****....******...****..**.***..*..*..**...**.*....'

Test 10

Group: 2

Verdict:

input
500 500 5000
.*.*.**..*.*.**.**..*..**...*....

correct output
1763

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '.*.*.**..*.*.**.**..*..**...*.*.*.*******..*.*....*...****..*.******.*.***..*...*..**.***.*..*..**..*.**.**.**.*.....*.***.*.**.**....***.*...*..**....***..**..*...*.*.*..**...**..***..**.**..*...****'

Test 11

Group: 3

Verdict:

input
2000 2000 1
.................................

correct output
489611392

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '........................................................................................................................................................................................................'

Test 12

Group: 3

Verdict:

input
2000 2000 5
.................................

correct output
120725884

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '........................................................................................................................................................................................................'

Test 13

Group: 3

Verdict:

input
2000 2000 400000
..*..**.**.**.*.***...**.*..**...

correct output
1849

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '..*..**.**.**.*.***...**.*..**.*.**....**.***.***..**....*..*.*.****.***.***..*.*...*..***.**..**..*..*.*..*...*..*.**.*.*..*..*......*.....**.*...****....*.*****..**.*..*.**.*.*....*..*....**...*.***'

Test 14

Group: 3

Verdict:

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

correct output
2665

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '***.*....*.*..*....**..*..*.*.**.*...*.***.*..**......*..**.*...*.*****..*..*.*...**.**..*.**.***.**...*.....***.*.**.*.*......****.*.***..***.***..**..*..**.*....*.**.*...*..*..*.......*.***..***...*'

Test 15

Group: 3

Verdict:

input
2000 2000 80000
**.**...*.***.**....**.*....*....

correct output
5587

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 46, in <module>
    flight = Flight(cities[int(row[0])-1], cities[int(row[1])-1], row[2])
ValueError: invalid literal for int() with base 10: '**.**...*.***.**....**.*....*.........***.*...*******.....**.......*.....*.*..*.*..**.***.******..**.*.**.***..**.****.*....*****.*...*********.*******.*.*.*.***..*.*...*...*....*....*..****.....*****'