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