1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <vector>

using namespace std;

int main(){
	ios_base::sync_with_stdio(0);
	int n,m,k,g,a,b,c,d,osad=0,r;
	cin>>n>>m>>k;
	vector <pair<int,int> >fiolka[n],sekwencja,reakcja;
	for(int i=0;i<n;i++){
		cin>>g;
		fiolka[i].push_back(make_pair(i,g));
	}
	for(int i=0;i<m;i++){
		cin>>a>>b;
		sekwencja.push_back(make_pair(a-1,b-1));
	}
	for(int i=0;i<k;i++){
		cin>>c>>d;
		reakcja.push_back(make_pair(c-1,d-1));
	}
	for(int i=0;i<m;i++){
		for(int j=0;j<fiolka[sekwencja[i].first].size();j++){
			fiolka[sekwencja[i].second].push_back(make_pair(fiolka[sekwencja[i].first][0].first,fiolka[sekwencja[i].first][0].second));
			for(int o=0;o<fiolka[sekwencja[i].second].size()-1;o++){
				for(int p=0;p<k;p++){
					if(fiolka[sekwencja[i].second][o].first==reakcja[p].first && fiolka[sekwencja[i].second][fiolka[sekwencja[i].second].size()-1].first==reakcja[p].second){
						r=min(fiolka[sekwencja[i].second][o].second,fiolka[sekwencja[i].second][fiolka[sekwencja[i].second].size()-1].second);
						if(r>0){
							fiolka[sekwencja[i].second][o].second-=r;
							fiolka[sekwencja[i].second][fiolka[sekwencja[i].second].size()-1].second-=r;
							osad+=2*r;
						}
					}
					else{
						if(fiolka[sekwencja[i].second][o].first==reakcja[p].second && fiolka[sekwencja[i].second][fiolka[sekwencja[i].second].size()-1].first==reakcja[p].first){
							r=min(fiolka[sekwencja[i].second][o].second,fiolka[sekwencja[i].second][fiolka[sekwencja[i].second].size()-1].second);
							if(r>0){
								fiolka[sekwencja[i].second][o].second-=r;
								fiolka[sekwencja[i].second][fiolka[sekwencja[i].second].size()-1].second-=r;
								osad+=2*r;
							}
						}
					}
				}
			}
		}
	}
		cout<<osad;
	
	return 0;
}