제출 #285473

#제출 시각아이디문제언어결과실행 시간메모리
285473keta_tsimakuridzeMountains (NOI20_mountains)C++14
100 / 100
557 ms14864 KiB
#include<bits/stdc++.h>
using namespace std;
const int N=3e5+5;
long long tree[N],h[N],ans,b[N],k,i,bef,n,ind[N];
pair<long long,long long>a[N];
void update(int ind,int val){
           
           for(ind;ind<=i;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;
}
int main(){
           cin>>n; 
           for(k=1;k<=n;k++){
                      cin>>h[k];
                      a[k].first=h[k];
                      a[k].second=k;
           }
           sort(a+1,a+n+1); bef=-1;
           for(k=1;k<=n;k++){
                      if(a[k].first!=bef){
                          bef=a[k].first;
                          i++;
                      }
                      ind[a[k].second]=i;
           }
           for(k=1;k<=n;k++){ 
                      update(ind[k],1);
                     if(ind[k]!=1) b[k]=getans(ind[k]-1);
                    // cout<<k<<" "<<b[k]<<endl;
           }
            for(k=1;k<=n;k++){
                      update(ind[k],-1);
           }
           for(k=n;k>=1;k--){
                      update(ind[k],1);
                      if(ind[k]!=1)ans+=b[k]*(getans(ind[k]-1));
           }
           cout<<ans;
           
           
}

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

Mountains.cpp: In function 'void update(int, int)':
Mountains.cpp:8:16: warning: statement has no effect [-Wunused-value]
    8 |            for(ind;ind<=i;ind+=ind&(-ind)){
      |                ^~~
Mountains.cpp: In function 'int getans(int)':
Mountains.cpp:14:16: warning: statement has no effect [-Wunused-value]
   14 |            for(ind;ind>=1;ind-=ind&(-ind)){
      |                ^~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...