#include <iostream>
using namespace std;
void algosia() {
int A, B;
cin >> A >> B;
// działamy jak w mod 1000, ale wszystko jest +1
int C, D;
// jeżeli dystans |AB| > 1, po prostu przekazujemy A+1 i B+1
if (abs(A - B) != 1 && abs(A - B) != 999) {
C = A % 1000 + 1; // wymaga trochę zastanowienia,
D = B % 1000 + 1; // ale działa
}
// w przeciwnym razie przekazujemy A+2 i B+2. Bajtek będzie w stanie to rozpoznać.
else {
C = (A + 1) % 1000 + 1;
D = (B + 1) % 1000 + 1;
}
cout << C << " " << D << endl;
}
void bajtek() { // działamy analogicznie jak algosia;
int C, D;
cin >> C >> D;
int A, B;
if (abs(C - D) != 1 && abs(C - D) != 999) {
A = (C + 998) % 1000 + 1; // efektywnie -1
B = (D + 998) % 1000 + 1;
} else {
A = (C + 997) % 1000 + 1; // efektywnie -2
B = (D + 997) % 1000 + 1;
}
cout << A << " " << B << "\n";
}
int main() {
string imie;
cin >> imie;
if (imie == "Algosia"s)
algosia();
else
bajtek();
}
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 | #include <iostream> using namespace std; void algosia() { int A, B; cin >> A >> B; // działamy jak w mod 1000, ale wszystko jest +1 int C, D; // jeżeli dystans |AB| > 1, po prostu przekazujemy A+1 i B+1 if (abs(A - B) != 1 && abs(A - B) != 999) { C = A % 1000 + 1; // wymaga trochę zastanowienia, D = B % 1000 + 1; // ale działa } // w przeciwnym razie przekazujemy A+2 i B+2. Bajtek będzie w stanie to rozpoznać. else { C = (A + 1) % 1000 + 1; D = (B + 1) % 1000 + 1; } cout << C << " " << D << endl; } void bajtek() { // działamy analogicznie jak algosia; int C, D; cin >> C >> D; int A, B; if (abs(C - D) != 1 && abs(C - D) != 999) { A = (C + 998) % 1000 + 1; // efektywnie -1 B = (D + 998) % 1000 + 1; } else { A = (C + 997) % 1000 + 1; // efektywnie -2 B = (D + 997) % 1000 + 1; } cout << A << " " << B << "\n"; } int main() { string imie; cin >> imie; if (imie == "Algosia"s) algosia(); else bajtek(); } |
English