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
   | #include <iostream> #include <cstdio> #define MAXN 1000
  #define left le*/   using namespace std;
  int right[MAXN], left[MAXN];
  void link(int x, int y) {     right[x] = y;     left[y] = x; }
  int main() {     int n, m, kase = 0;     while(scanf("%d%d", &n, &m) != EOF){         for(int i = 1; i <= n; i++){             left[i] = i - 1;         	             right[i] = (i + 1) % (n + 1);         }         right[0] = 1;         left[0] = n;   			          int op, x, y, flag = 0;  	
          while(m--){             scanf("%d", &op);             if(op == 4)                 flag = !flag;		             else{                 scanf("%d%d", &x, &y);                 if(op != 3 && flag)                     op = 3 - op; 	                 if(op == 1 && x == left[y]) continue;                 if(op == 2 && x == right[y]) continue;
                  int lx = left[x], rx = right[x], ly = left[y], ry = right[y];                 if(op == 1){                     link(lx, rx);                     link(ly, x);                     link(x, y);                 }                 else if(op == 2){                     link(lx, rx);                     link(y, x);                     link(x, ry);                 }                 else if(op == 3){   	                     if(right[x] == y) {link(lx, y); link(y, x); link(x, ry);}                     else if(right[y] == x) {link(ly, x); link(x, y); link(y, rx);}                     else{link(lx, y); link(y, rx); link(ly, x); link(x, ry);}                 }             }         }
          int b = 0;         int ans = 0;         for(int i = 1; i <= n; i++){             b = right[b];    		             if(i % 2 == 1)		                 ans += b;         }         if(flag && n % 2 == 0)             ans = (1 + n) * n / 2 - ans;         printf("Case %d: %d\n", ++kase,ans);     }
      return 0; }
   |