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
#include <bits/stdc++.h>
#include "message.h"
#include "krazki.h"
#define endl '\n'
#define sz(x) ((int)x.size())
using namespace std;

vector<long long int> V; // rura
vector<long long int> D; // krazki

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int ile = NumberOfNodes();
	int ins = MyNodeId();
	int m = NumberOfDiscs();
	int n = PipeHeight();
	if(ins == 0) {
		V.resize(n+1);
		D.resize(m);
		V[0] = 1000000001;
		for(int i = 1; i <= n; ++i) {
			cin >> V[i];
		}
		for(int i = 0; i < m; ++i) {
			cin >> D[i];
		}
		for(int i = 1; i < m; ++i) {
			D[i] = max(D[i-1], D[i]);
		}
		for(int i = 1; i <= n; ++i) {
			V[i] = min(V[i-1], V[i]);
		}
		int l = n; // wskaznik na miejsce rury
		for(int i = 0; i < m; ++i) {
			while(D[i] > V[l]) --l;
			--l;
		}
		if(l < 0) cout << 0 << endl;
		else cout << l+1 << endl;
	}

	return 0;
}