Submission #1295188

#TimeUsernameProblemLanguageResultExecution timeMemory
1295188kqhuy2009Pilot (NOI19_pilot)C++20
78 / 100
32 ms4652 KiB
#include <bits/stdc++.h> #define ll int #define INF (ll)1e9+1 #define bit(mask, id) ((mask >> id) & 1LL) #define flip(mask, id) (mask ^ (1LL << id)) #define onbit(mask, id) (mask (1LL << id)) #define offbit(mask,id) (mask & ~(1LL << id)) #define pb push_back #define el '\n' #define ft first #define sc second #define fi first #define se second #define ii pair<ll,ll> #define FOR(i, l, r) for (ll i = (ll)(l); i <= (ll)(r); i++) #define FORD(i, l, r) for(ll i = (ll)(l); i >= (ll)(r); i--) #define str string #define all(a,i) memset(a,i,sizeof(a)) ///////////////////////////// const long long oo = 1e18; const int N = 1e6 + 9; using namespace std; ll par[N], sz[N]; ll acs(ll u) { if(par[u] == u) return u; return par[u] = acs(par[u]); } void join(ll x, ll y) { ll u = acs(x); ll v = acs(y); if(u==v) return; if(sz[u]<sz[v]) swap(u,v); par[v] = u; sz[u] += sz[v]; } ll n; ii a[N]; ll Q; long long ans[N]; ii q[N]; bool vis[N]; signed main() { #define TASK "pilot" if(fopen(TASK ".inp","r")) { freopen (TASK ".inp","r",stdin); freopen (TASK ".out","w",stdout); //freopen (TASK ".ans","w",stdout); } ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>Q; FOR(i,1,n+1) par[i] = i; FOR(i,1,n) { cin>>a[i].ft; a[i].sc = i; } sort(a+1,a+1+n); FOR(i,1,Q) { cin>>q[i].ft; q[i].sc = i; } sort(q+1,q+1+Q); long long res = 0; ll j = 0; FOR(i,1,Q) { ll x = q[i].ft; while(a[j+1].ft <= x && j+1<=n) { j++; ll id = a[j].sc; sz[id]++; res += sz[acs(id-1)]; res += sz[acs(id+1)]; res += sz[acs(id-1)] * sz[acs(id+1)]; res++; if(vis[id-1]) join(id,id-1); if(vis[id+1]) join(id,id+1); vis[id] = 1; } ans[q[i].sc] = res; } FOR(i,1,Q) cout<<ans[i]<<el; return 0; }

Compilation message (stderr)

pilot.cpp: In function 'int main()':
pilot.cpp:51:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |         freopen (TASK ".inp","r",stdin);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
pilot.cpp:52:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |         freopen (TASK ".out","w",stdout);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#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...