#include <stdio.h>
void number_swap(int* a, int* b) {
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
void rotate_left(int* a, int* b, int* c) {
*a ^= *b ^ *c;
*c ^= *a ^ *b;
*b ^= *a ^ *c;
*a ^= *b ^ *c;
}
void rotate_right(int* a, int* b, int* c, int* d) {
*a ^= *b ^ *c ^ *d;
*b ^= *a ^ *c ^ *d;
*c ^= *a ^ *b ^ *d;
*d ^= *a ^ *b ^ *c;
*a ^= *b ^ *c ^ *d;
}
int main() {
// your code goes here
int a = 7894;
int b = 1989;
printf("a = %d, b = %d\n", a
, b
); number_swap(&a, &b);
printf("a = %d, b = %d\n", a
, b
);
int aa = 5;
int bb = 8;
int cc = 3;
printf("aa = %d, bb = %d, cc = %d\n", aa
, bb
, cc
); rotate_left(&aa, &bb, &cc);
printf("aa = %d, bb = %d, cc = %d\n", aa
, bb
, cc
);
int aaa = 1;
int bbb = 3;
int ccc = 5;
int ddd = 7;
printf("aaa = %d, bbb = %d, ccc = %d, ddd = %d\n", aaa
, bbb
, ccc
, ddd
); rotate_right(&aaa, &bbb, &ccc, &ddd);
printf("aaa = %d, bbb = %d, ccc = %d, ddd = %d\n", aaa
, bbb
, ccc
, ddd
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIG51bWJlcl9zd2FwKGludCogYSwgaW50KiBiKSB7CgkqYSBePSAqYjsKCSpiIF49ICphOwoJKmEgXj0gKmI7Cn0KCnZvaWQgcm90YXRlX2xlZnQoaW50KiBhLCBpbnQqIGIsIGludCogYykgewoJKmEgXj0gKmIgXiAqYzsKCSpjIF49ICphIF4gKmI7CgkqYiBePSAqYSBeICpjOwoJKmEgXj0gKmIgXiAqYzsKfQoKdm9pZCByb3RhdGVfcmlnaHQoaW50KiBhLCBpbnQqIGIsIGludCogYywgaW50KiBkKSB7CgkqYSBePSAqYiBeICpjIF4gKmQ7CgkqYiBePSAqYSBeICpjIF4gKmQ7CgkqYyBePSAqYSBeICpiIF4gKmQ7CgkqZCBePSAqYSBeICpiIF4gKmM7CgkqYSBePSAqYiBeICpjIF4gKmQ7Cn0KCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IGEgPSA3ODk0OwoJaW50IGIgPSAxOTg5OwoJcHJpbnRmKCJhID0gJWQsIGIgPSAlZFxuIiwgYSwgYik7CgludW1iZXJfc3dhcCgmYSwgJmIpOwoJcHJpbnRmKCJhID0gJWQsIGIgPSAlZFxuIiwgYSwgYik7CgkKCWludCBhYSA9IDU7CglpbnQgYmIgPSA4OwoJaW50IGNjID0gMzsKCXByaW50ZigiYWEgPSAlZCwgYmIgPSAlZCwgY2MgPSAlZFxuIiwgYWEsIGJiLCBjYyk7Cglyb3RhdGVfbGVmdCgmYWEsICZiYiwgJmNjKTsKCXByaW50ZigiYWEgPSAlZCwgYmIgPSAlZCwgY2MgPSAlZFxuIiwgYWEsIGJiLCBjYyk7CgkKCWludCBhYWEgPSAxOwoJaW50IGJiYiA9IDM7CglpbnQgY2NjID0gNTsKCWludCBkZGQgPSA3OwoJcHJpbnRmKCJhYWEgPSAlZCwgYmJiID0gJWQsIGNjYyA9ICVkLCBkZGQgPSAlZFxuIiwgYWFhLCBiYmIsIGNjYywgZGRkKTsKCXJvdGF0ZV9yaWdodCgmYWFhLCAmYmJiLCAmY2NjLCAmZGRkKTsKCXByaW50ZigiYWFhID0gJWQsIGJiYiA9ICVkLCBjY2MgPSAlZCwgZGRkID0gJWRcbiIsIGFhYSwgYmJiLCBjY2MsIGRkZCk7CgkKCXJldHVybiAwOwp9