Submission #403171

#TimeUsernameProblemLanguageResultExecution timeMemory
403171AmineTrabelsiStreet Lamps (APIO19_street_lamps)C++14
20 / 100
5060 ms524292 KiB
#include <bits/stdc++.h> using namespace std; // Hi int main(){ //ios::sync_with_stdio(0);cin.tie(0); int n,q; cin>>n>>q; string s; cin>>s; vector<vector<int>> cnt(n+2,vector<int>(n+1,0)); vector<int> pref(n+2,0); for(int i=0;i<=n;i++){ pref[i+1] = pref[i]+(s[i]=='1'); } for(int i=0;i<=n;i++){ for(int j=0;j<i;j++){ cnt[i][j] = cnt[j][i] = (pref[i]-pref[j] == i-j); //cout << j<<" "<<i<<" "<<cnt[i][j]<<'\n'; } } for(int tt=1;tt<=q;tt++){ string t; cin>>t; if(t == "toggle"){ int ind; cin>>ind; ind--; if(s[ind] == '0')s[ind] = '1'; else s[ind] = '0'; for(int i=0;i<n;i++){ pref[i+1] = pref[i]+(s[i]=='1'); } }else{ int a,b; cin>>a>>b; a--,b--; cout << cnt[a][b] << '\n'; } for(int i=0;i<=n;i++){ for(int j=0;j<i;j++){ cnt[i][j] = cnt[j][i] += (pref[i]-pref[j] == i-j); } } } return 0; }
#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...