fork(1) download
  1. #include <cstdio>
  2. using namespace std;
  3.  
  4. int f(int mn, int mx, int x) {
  5. const int len = (mx - mn) * 2;
  6. const int offset = (x + len - 1) % len;
  7. const int ans = (offset + 1) % len;
  8. return mn + ans > mx ? mn + len - ans : mn + ans;
  9. }
  10.  
  11.  
  12. int main() {
  13. for(int i = 0; i < 50; ++i) {
  14. printf("f(0, 3, %d) = %d\n", i, f(0, 3, i));
  15. }
  16. return 0;
  17. }
Success #stdin #stdout 0s 3140KB
stdin
Standard input is empty
stdout
f(0, 3, 0) = 0
f(0, 3, 1) = 1
f(0, 3, 2) = 2
f(0, 3, 3) = 3
f(0, 3, 4) = 2
f(0, 3, 5) = 1
f(0, 3, 6) = 0
f(0, 3, 7) = 1
f(0, 3, 8) = 2
f(0, 3, 9) = 3
f(0, 3, 10) = 2
f(0, 3, 11) = 1
f(0, 3, 12) = 0
f(0, 3, 13) = 1
f(0, 3, 14) = 2
f(0, 3, 15) = 3
f(0, 3, 16) = 2
f(0, 3, 17) = 1
f(0, 3, 18) = 0
f(0, 3, 19) = 1
f(0, 3, 20) = 2
f(0, 3, 21) = 3
f(0, 3, 22) = 2
f(0, 3, 23) = 1
f(0, 3, 24) = 0
f(0, 3, 25) = 1
f(0, 3, 26) = 2
f(0, 3, 27) = 3
f(0, 3, 28) = 2
f(0, 3, 29) = 1
f(0, 3, 30) = 0
f(0, 3, 31) = 1
f(0, 3, 32) = 2
f(0, 3, 33) = 3
f(0, 3, 34) = 2
f(0, 3, 35) = 1
f(0, 3, 36) = 0
f(0, 3, 37) = 1
f(0, 3, 38) = 2
f(0, 3, 39) = 3
f(0, 3, 40) = 2
f(0, 3, 41) = 1
f(0, 3, 42) = 0
f(0, 3, 43) = 1
f(0, 3, 44) = 2
f(0, 3, 45) = 3
f(0, 3, 46) = 2
f(0, 3, 47) = 1
f(0, 3, 48) = 0
f(0, 3, 49) = 1