Saturday, 29 July 2017

Lightoj 1080 - Binary Simulation

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define mx 100005
  4. int a[mx];
  5. int n;
  6. int update(int indx, int v){
  7.     while(indx<=n){
  8.         a[indx]+=v;
  9.         indx+= (indx&(-indx));
  10.     }
  11. }
  12. int query(int indx){
  13.     int sum = 0;
  14.     while(indx>0){
  15.         sum+= a[indx];
  16.         indx-=(indx&(-indx));
  17.     }
  18.     return sum;
  19. }
  20. int main()
  21. {
  22.     int ts;
  23.     scanf("%d"&ts);
  24.     for(int p = 1; p <=ts; p++){
  25.     memset(a, 0sizeof(a));
  26.     printf("Case %d:\n", p);
  27.     char s[mx];
  28.     scanf("%s", s);
  29.     int q;
  30.     n = strlen(s);
  31.     scanf("%d"&q);
  32.         for(int i = 0; i<; i++){
  33.         char ch;
  34.         int l, r, p;
  35.         getchar();
  36.         scanf("%c"&ch);
  37.         if(ch=='I'){
  38.             scanf("%d%d"&l, &r);
  39.             update(l, 1);
  40.             update(r+1-1);
  41.         }
  42.         else if(ch == 'Q'){
  43.             scanf("%d"&p);
  44.             int a = (query(p)%2);
  45.             if(== 0) printf("%c\n", s[p-1]);
  46.             else {
  47.                 if(s[p-1] == '0') printf("1\n");
  48.                 else printf("0\n");
  49.             }
  50.         }
  51.        
  52.     }
  53.     }
  54.     return 0;
  55. }

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...