제출 #267445

#제출 시각아이디문제언어결과실행 시간메모리
267445blue가로등 (APIO19_street_lamps)C++11
40 / 100
1319 ms5300 KiB
#include <iostream> #include <vector> using namespace std; int main() { int n, q; cin >> n >> q; if(n*n*q <= 2000000) { string S; cin >> S; bool on[n+1]; for(int i = 1; i <= n; i++) on[i] = S[i-1] == '1'; int drive[n+1][n+2]; for(int a = 1; a <= n; a++) for(int b = a; b <= n+1; b++) drive[a][b] = 0; int A, B; for(int i = 1; i <= q; i++) { for(int a = 1; a <= n; a++) { for(int b = a+1; b <= n+1; b++) { if(!on[b-1]) break; drive[a][b]++; } } cin >> S; if(S == "toggle") { cin >> A; on[A] = !on[A]; } else { cin >> A >> B; cout << drive[A][B] << '\n'; } } return 0; } string S; cin >> S; vector<int> started(n+1, -1); vector<int> res(n+1, 0); for(int i = 1; i <= n; i++) { if(S[i-1] == '1') started[i] = 0; } int A, B; for(int i = 1; i <= q; i++) { cin >> S; if(S == "toggle") { cin >> A; if(started[A] == -1) started[A] = i; else { res[A] += i - started[A]; started[A] = -1; } } else { cin >> A >> B; cout << res[A] + (started[A] != -1 ? i - started[A] : 0) << '\n'; } } }
#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...