제출 #402050

#제출 시각아이디문제언어결과실행 시간메모리
402050keta_tsimakuridzePoklon (COCI17_poklon)C++14
140 / 140
1653 ms41740 KiB
#include<bits/stdc++.h> #define f first #define int long long #define s second using namespace std; const int N=5e5+5,mod=1e9+7; int t,n,q,a[N],tree[N],bef[N],ans[N]; map<int,int>pos; string s; vector<pair<int,int> >V[N]; void update(int ind,int val){ for(ind;ind<=n;ind+=ind&(-ind)) tree[ind]+=val; } int getans(int ind){ int pas=0; for(ind;ind>=1;ind-=ind&(-ind)) pas+=tree[ind]; return pas; } main(){ // t=1; cin>>n>>q; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=q;i++){ int l,r; cin>>l>>r; V[l].push_back({r,i}); } for(int i=n;i>=1;i--){ bef[i]=pos[a[i]]; if(bef[bef[i]] ) update(bef[bef[i]],-2); if(bef[bef[bef[i]]]) update(bef[bef[bef[i]]],1); if(bef[i])update(bef[i],1); for(int j=0;j<V[i].size();j++){ ans[V[i][j].s] = getans(V[i][j].f); } pos[a[i]] = i; } for(int i=1;i<=q;i++) cout<<ans[i]<<endl; }

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

poklon.cpp: In function 'void update(long long int, long long int)':
poklon.cpp:12:6: warning: statement has no effect [-Wunused-value]
   12 |  for(ind;ind<=n;ind+=ind&(-ind)) tree[ind]+=val;
      |      ^~~
poklon.cpp: In function 'long long int getans(long long int)':
poklon.cpp:16:6: warning: statement has no effect [-Wunused-value]
   16 |  for(ind;ind>=1;ind-=ind&(-ind)) pas+=tree[ind];
      |      ^~~
poklon.cpp: At global scope:
poklon.cpp:19:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   19 |  main(){
      |  ^~~~
poklon.cpp: In function 'int main()':
poklon.cpp:36:16: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |   for(int j=0;j<V[i].size();j++){
      |               ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...