結果
| 問題 |
No.762 PDCAパス
|
| コンテスト | |
| ユーザー |
るさ
|
| 提出日時 | 2019-04-09 21:45:32 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,338 bytes |
| コンパイル時間 | 183 ms |
| コンパイル使用メモリ | 12,672 KB |
| 実行使用メモリ | 49,228 KB |
| 最終ジャッジ日時 | 2024-07-05 02:45:13 |
| 合計ジャッジ時間 | 20,250 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 36 WA * 2 |
ソースコード
# coding: utf-8
# Your code here!
class Node:
def __init__(self):
self.edge=[]
self.degree=0
self.word=""
self.cnt=0
def add_edge(self,new_edge):
self.edge.append(new_edge)
self.degree+=1
class Edge:
def __init__(self,node_a,node_b):
node_a.add_edge(self)
node_b.add_edge(self)
self.node=(node_a,node_b)
class Graph:
def __init__(self):
self.node={}
self.edge=[]
def add_edge(self,new_edge):
if not new_edge[0] in self.node:
self.node[new_edge[0]]=Node()
if not new_edge[1] in self.node:
self.node[new_edge[1]]=Node()
self.edge.append(Edge(self.node[new_edge[0]],self.node[new_edge[1]]))
n,m=map(int,input().split())
s=input()
g=Graph()
for i in range(m):
g.add_edge(list(map(int,input().split())))
for i in range(len(s)):
if i+1 in g.node:
g.node[i+1].word=s[i]
for i in g.edge:
a,b=i.node[0],i.node[1]
if (a.word=="P") and (b.word=="D"):
b.cnt+=1
if (a.word=="D") and (b.word=="P"):
a.cnt+=1
for i in g.edge:
a,b=i.node[0],i.node[1]
if (a.word=="D") and (b.word=="C"):
b.cnt+=a.cnt
if (a.word=="C") and (b.word=="D"):
a.cnt+=b.cnt
c=0
for i in g.edge:
a,b=i.node[0],i.node[1]
if (a.word=="C") and (b.word=="A"):
c+=a.cnt
if (a.word=="A") and (b.word=="C"):
c+=b.cnt
print(c)
るさ