#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;
}
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; } |
English