Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- unsigned ZigZag(unsigned n, unsigned i, unsigned j, unsigned pivot, unsigned lung) {
- if (lung) {
- n = n - ((2 * (i > lung) + (j > lung) ) * pivot);
- if (i > lung ) i -= lung;
- if (j > lung ) j -= lung;
- return ZigZag(n, i, j, pivot/ 4, lung /2);
- }
- return n;
- }
- int main() {
- unsigned n, i, j , q;
- FILE *f, *g;
- f = fopen("in.txt", "r");
- g = fopen("out.txt", "w");
- fscanf(f, "%u%u", &n, &q);
- while (q) {
- fscanf(f, "%u%u", &i, &j);
- fprintf(g, "%u\n", ZigZag(1 << 2 * n, i, j , 1 << 2 *(n-1), 1 <<( n - 1)));
- q--;
- }
- fclose(f);
- fclose(g);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment