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