#include <cstdio> #include "krazki.h" #include "message.h" // #define DEBUG 2 using namespace std; #define MAX_NO 110 #define MAX_D 1000000000000000100 typedef long long int lli; int n; int m; lli _v; int _i; lli lmd; lli md; // max disc diameter int mdi; // max disc index lli mp; // min pipe diameter int mpi; // min pipe index int mpdi; // min pipe for max disc int no; // node number int noc; // node count int i, j, l; int r; int ds, de; // diameters part start, end int ps, pe; // pipe part start, end lli tmd[MAX_NO]; int tmdi[MAX_NO]; lli tmp[MAX_NO]; int tmpi[MAX_NO]; int main() { noc = NumberOfNodes(); no = MyNodeId(); n = PipeHeight(); m = NumberOfDiscs(); if(no) { return 0; } if(n < m) { if(no) { puts("0"); } return 0; } r = n + 1; for(i = 1; i <= m && r; ++i) { md = DiscDiameter(i); if(lmd < md) { #ifdef DEBUG printf("\tr=%d i=%d md=%lld mp=%lld\n", r, i, md, mp); #endif for(j = 1; j < r; ++j) { mp = HoleDiameter(j); if(mp < md) { r = j; } } } --r; lmd = md; } printf("%d\n", r); 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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | #include <cstdio> #include "krazki.h" #include "message.h" // #define DEBUG 2 using namespace std; #define MAX_NO 110 #define MAX_D 1000000000000000100 typedef long long int lli; int n; int m; lli _v; int _i; lli lmd; lli md; // max disc diameter int mdi; // max disc index lli mp; // min pipe diameter int mpi; // min pipe index int mpdi; // min pipe for max disc int no; // node number int noc; // node count int i, j, l; int r; int ds, de; // diameters part start, end int ps, pe; // pipe part start, end lli tmd[MAX_NO]; int tmdi[MAX_NO]; lli tmp[MAX_NO]; int tmpi[MAX_NO]; int main() { noc = NumberOfNodes(); no = MyNodeId(); n = PipeHeight(); m = NumberOfDiscs(); if(no) { return 0; } if(n < m) { if(no) { puts("0"); } return 0; } r = n + 1; for(i = 1; i <= m && r; ++i) { md = DiscDiameter(i); if(lmd < md) { #ifdef DEBUG printf("\tr=%d i=%d md=%lld mp=%lld\n", r, i, md, mp); #endif for(j = 1; j < r; ++j) { mp = HoleDiameter(j); if(mp < md) { r = j; } } } --r; lmd = md; } printf("%d\n", r); return 0; } |