greedy *1400

Please click on ads to support us..

Python Code:

import sys

ins = (tok for tok in sys.stdin.readlines())

n = int(next(ins))

names = []
for _ in range(n):
  names.append(next(ins).split())

order = [int(tok)-1 for tok in next(ins).split()]

f,l = names[order[0]]
if f <= l:
  prev_handle = f
else:
  prev_handle = l

feasible = True
for i in range(1, n):
  f,l = names[order[i]]
  if f <= l:
    first = f
    second = l
  else:
    first = l
    second = f
  
  if prev_handle < first:
    prev_handle = first
  elif prev_handle < second:
    prev_handle = second
  else:
    print("NO")
    feasible = False
    break

if feasible:
  print("YES")
  		  		     					   	 					  	


Comments

Submit
0 Comments
More Questions

43A - Football
50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet
1648A - Weird Sum
427A - Police Recruits
535A - Tavas and Nafas
581A - Vasya the Hipster
1537B - Bad Boy
1406B - Maximum Product
507B - Amr and Pins
379A - New Year Candles
1154A - Restoring Three Numbers
750A - New Year and Hurry
705A - Hulk
492B - Vanya and Lanterns
1374C - Move Brackets
1476A - K-divisible Sum
1333A - Little Artem
432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game