#include <cstdio> #include "krazki.h" #include "message.h" int main() { int n, m, o; long long i; n=PipeHeight(); m=NumberOfDiscs(); long long kr[m], tab[n]; for(i=0; i<n; i++) tab[i]=HoleDiameter(i+1); for(i=0; i<m; i++) kr[i]=DiscDiameter(i+1); for(i=0; i<n-1; i++) if(tab[i+1]>tab[i]) tab[i+1]=tab[i]; o=n; for(i=0; i<m; i++) { long long a=kr[i]; if(tab[0]<a || o==0) {printf("0"); return 0;} else{ int p, k, s; p=-1; k=o-1; while(p<k) { s=(p+k+1)/2; if(a<=tab[s]) p=s; else k=s-1; } o=k;} } if(MyNodeId()==0) printf("%d", o+1); }
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 | #include <cstdio> #include "krazki.h" #include "message.h" int main() { int n, m, o; long long i; n=PipeHeight(); m=NumberOfDiscs(); long long kr[m], tab[n]; for(i=0; i<n; i++) tab[i]=HoleDiameter(i+1); for(i=0; i<m; i++) kr[i]=DiscDiameter(i+1); for(i=0; i<n-1; i++) if(tab[i+1]>tab[i]) tab[i+1]=tab[i]; o=n; for(i=0; i<m; i++) { long long a=kr[i]; if(tab[0]<a || o==0) {printf("0"); return 0;} else{ int p, k, s; p=-1; k=o-1; while(p<k) { s=(p+k+1)/2; if(a<=tab[s]) p=s; else k=s-1; } o=k;} } if(MyNodeId()==0) printf("%d", o+1); } |