#include <iostream> #include "cielib.h" using namespace std; int tab[1002], pocz[1002], kon[1002]; int main() { ios_base::sync_with_stdio(0); int d=podajD(), k=podajK(), r=podajR(), il=d; for (int i=0; i<d; i++) { tab[i]=r/2; pocz[i]=0; kon[i]=r; } if (r==2) il=0; while (il>0) { //cout << il << "\n"; for (int i=0; i<d; i++) { //cout << i << " " << pocz[i] << " " << kon[i] << "\n"; if (kon[i]<=pocz[i]+2) continue; int s=(pocz[i]+kon[i])/2; tab[i]=pocz[i]; int c=czyCieplo(tab); tab[i]=kon[i]; c=czyCieplo(tab); if (c==1) { pocz[i]=s+1; tab[i]=(pocz[i]+kon[i])/2; if (pocz[i]+2>=kon[i]) il--; continue; } tab[i]=pocz[i]; c=czyCieplo(tab); if (c==1) { if ((pocz[i]+kon[i])%2==1) { kon[i]=s; tab[i]=(pocz[i]+kon[i])/2; } else { kon[i]=s-1; tab[i]=(pocz[i]+kon[i])/2; } } else { if ((pocz[i]+kon[i])%2==1) { pocz[i]=s; kon[i]=s+1; if (s+1<r) kon[i]++; else pocz[i]--; tab[i]=(pocz[i]+kon[i])/2; } else { pocz[i]=s; kon[i]=s; tab[i]=s; } } if (pocz[i]+2>=kon[i]) il--; } } for (int i=0; i<d; i++) { //cout << i << " " << pocz[i] << " " << kon[i] << "\n"; if (kon[i]==pocz[i]) continue; int s=(pocz[i]+kon[i])/2; tab[i]=pocz[i]; int c=czyCieplo(tab); tab[i]=kon[i]; c=czyCieplo(tab); if (c==1) { pocz[i]=s+1; tab[i]=(pocz[i]+kon[i])/2; continue; } tab[i]=pocz[i]; c=czyCieplo(tab); if (c==1) { if ((pocz[i]+kon[i])%2==1) { kon[i]=s; tab[i]=(pocz[i]+kon[i])/2; } else { kon[i]=s-1; tab[i]=(pocz[i]+kon[i])/2; } } else { //cout << s << "\n"; if ((pocz[i]+kon[i])%2==1) { pocz[i]=s; kon[i]=s+1; if (s+1<r) kon[i]++; else pocz[i]--; } else { pocz[i]=s; kon[i]=s; } tab[i]=(pocz[i]+kon[i])/2; } } znalazlem(tab); 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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | #include <iostream> #include "cielib.h" using namespace std; int tab[1002], pocz[1002], kon[1002]; int main() { ios_base::sync_with_stdio(0); int d=podajD(), k=podajK(), r=podajR(), il=d; for (int i=0; i<d; i++) { tab[i]=r/2; pocz[i]=0; kon[i]=r; } if (r==2) il=0; while (il>0) { //cout << il << "\n"; for (int i=0; i<d; i++) { //cout << i << " " << pocz[i] << " " << kon[i] << "\n"; if (kon[i]<=pocz[i]+2) continue; int s=(pocz[i]+kon[i])/2; tab[i]=pocz[i]; int c=czyCieplo(tab); tab[i]=kon[i]; c=czyCieplo(tab); if (c==1) { pocz[i]=s+1; tab[i]=(pocz[i]+kon[i])/2; if (pocz[i]+2>=kon[i]) il--; continue; } tab[i]=pocz[i]; c=czyCieplo(tab); if (c==1) { if ((pocz[i]+kon[i])%2==1) { kon[i]=s; tab[i]=(pocz[i]+kon[i])/2; } else { kon[i]=s-1; tab[i]=(pocz[i]+kon[i])/2; } } else { if ((pocz[i]+kon[i])%2==1) { pocz[i]=s; kon[i]=s+1; if (s+1<r) kon[i]++; else pocz[i]--; tab[i]=(pocz[i]+kon[i])/2; } else { pocz[i]=s; kon[i]=s; tab[i]=s; } } if (pocz[i]+2>=kon[i]) il--; } } for (int i=0; i<d; i++) { //cout << i << " " << pocz[i] << " " << kon[i] << "\n"; if (kon[i]==pocz[i]) continue; int s=(pocz[i]+kon[i])/2; tab[i]=pocz[i]; int c=czyCieplo(tab); tab[i]=kon[i]; c=czyCieplo(tab); if (c==1) { pocz[i]=s+1; tab[i]=(pocz[i]+kon[i])/2; continue; } tab[i]=pocz[i]; c=czyCieplo(tab); if (c==1) { if ((pocz[i]+kon[i])%2==1) { kon[i]=s; tab[i]=(pocz[i]+kon[i])/2; } else { kon[i]=s-1; tab[i]=(pocz[i]+kon[i])/2; } } else { //cout << s << "\n"; if ((pocz[i]+kon[i])%2==1) { pocz[i]=s; kon[i]=s+1; if (s+1<r) kon[i]++; else pocz[i]--; } else { pocz[i]=s; kon[i]=s; } tab[i]=(pocz[i]+kon[i])/2; } } znalazlem(tab); return 0; } |