Submission #510692

#TimeUsernameProblemLanguageResultExecution timeMemory
510692amukkalirStreet Lamps (APIO19_street_lamps)C++17
20 / 100
5011 ms1868 KiB
#include <bits/stdc++.h>
using namespace std; 
typedef long long ll; 
#define pii pair<int,int> 
#define fi first 
#define se second 
#define pb push_back 
#define mp make_pair

const int nax = 100; 
int n, q; 
int ans[nax+5][nax+5]; 
int bit[nax+5]; 
int s[nax+5]; 

void upd(int idx, int val) {
    for (int i = idx; i<=n; i += i & (-i)) {
        bit[i] += val; 
    }
}

int sum(int idx) {
    int ret = 0; 
    for(int i = idx; i>0; i -= (i & (-i))) {
        ret += bit[i]; 
    }
    return ret; 
}

int get(int l, int r) {
    return sum(r) - sum(l-1); 
}

signed main () {
    scanf("%d %d", &n,&q); 
    for(int i=1; i<=n; i++) {
        int x; 
        scanf("%1d", &x); 
        if(x) upd(i,x); 
        s[i] = x; 
    }

    while(q--) {
        for(int i=1; i<=n+1; i++) {
            for(int j=i+1; j<=n+1; j++) {
                ans[i][j] += get(i,j-1) == (j-i); 
            }
        }

        string ts; cin >> ts; 
        if(ts == "query") {
            int a, b; scanf("%d %d", &a, &b); 
            printf("%d\n", ans[a][b]); 

        } else {
            int x; scanf("%d", &x); 
            
            upd(x, s[x] == 1 ? -1 : 1); 
            s[x] ^= 1; 
        }
    }
}

Compilation message (stderr)

street_lamps.cpp: In function 'int main()':
street_lamps.cpp:35:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 |     scanf("%d %d", &n,&q);
      |     ~~~~~^~~~~~~~~~~~~~~~
street_lamps.cpp:38:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   38 |         scanf("%1d", &x);
      |         ~~~~~^~~~~~~~~~~
street_lamps.cpp:52:28: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |             int a, b; scanf("%d %d", &a, &b);
      |                       ~~~~~^~~~~~~~~~~~~~~~~
street_lamps.cpp:56:25: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   56 |             int x; scanf("%d", &x);
      |                    ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...