제출 #641435

#제출 시각아이디문제언어결과실행 시간메모리
641435ttamxPilot (NOI19_pilot)C++14
100 / 100
571 ms57044 KiB
#include<bits/stdc++.h> using namespace std; const int N=1e6+5; int n,q; int p[N]; long long sz[N],ans[N]; long long sum=0; bool vis[N]; vector<pair<int,int>> a,b; int fp(int u){ if(u==p[u])return u; return p[u]=fp(p[u]); } void merg(int u,int v){ u=fp(u),v=fp(v); sum-=sz[u]*(sz[u]+1)/2; sum-=sz[v]*(sz[v]+1)/2; p[v]=u; sz[u]+=sz[v]; sz[v]=0; sum+=sz[u]*(sz[u]+1)/2; } int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> q; iota(p,p+n+1,0); for(int i=1;i<=n;++i){ int x; cin >> x; a.emplace_back(x,i); sz[i]=1; } for(int i=1;i<=q;++i){ int x; cin >> x; b.emplace_back(x,i); } sort(a.begin(),a.end()); sort(b.begin(),b.end()); int idx=0; for(auto [h,i]:b){ while(idx<n && a[idx].first<=h){ vis[a[idx].second]=1; ++sum; if(vis[a[idx].second-1])merg(a[idx].second-1,a[idx].second); if(vis[a[idx].second+1])merg(a[idx].second+1,a[idx].second); ++idx; } ans[i]=sum; } for(int i=1;i<=q;++i)cout << ans[i] << '\n'; }

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

pilot.cpp: In function 'int main()':
pilot.cpp:47:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   47 |     for(auto [h,i]:b){
      |              ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...