제출 #267132

#제출 시각아이디문제언어결과실행 시간메모리
267132kimbj0709가로등 (APIO19_street_lamps)C++14
20 / 100
419 ms29964 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define maxn 300050 vector<int> seg(maxn*8,INT_MAX); void update(int node,int start,int end,int pos,int val){ if(start==end){ assert(start==pos); seg[node] = val; return; } int mid = (start+end)/2; if(pos<=mid){ update(node*2+1,start,mid,pos,val); } else{ update(node*2+2,mid+1,end,pos,val); } seg[node] = max(seg[node*2+1],seg[node*2+2]); } int query(int node,int start,int end,int rangemin,int rangemax){ if(start>rangemax||end<rangemin){ return -1; } if(start>=rangemin&&end<=rangemax){ return seg[node]; } int mid = (start+end)/2; return max(query(node*2+1,start,mid,rangemin,rangemax),query(node*2+2,mid+1,end,rangemin,rangemax)); } int32_t main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n,q; cin >> n >> q; string input; cin >> input; vector<int> currpos(maxn,0); for(int i=0;i<input.length();i++){ if(input.at(i)=='1'){ currpos[i+1] = 1; update(0,1,n,i+1,0); } } string input1; int input2,input3; for(int i=1;i<=q;i++){ cin >> input1; if(input1=="toggle"){ cin >> input2; if(currpos[input2]==1){ currpos[input2] = 0; update(0,1,n,input2,INT_MAX); } else{ currpos[input2] = 1; update(0,1,n,input2,i); } } else{ cin >> input2 >> input3; input3--; int mini = query(0,1,n,input2,input3); if(mini==INT_MAX){ cout << 0 << "\n"; } else{ cout << i-mini << "\n"; } } } }

컴파일 시 표준 에러 (stderr) 메시지

street_lamps.cpp: In function 'int32_t main()':
street_lamps.cpp:39:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |     for(int i=0;i<input.length();i++){
      |                 ~^~~~~~~~~~~~~~~
#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...