Submission #700131

#TimeUsernameProblemLanguageResultExecution timeMemory
700131fdnfksdMoney (IZhO17_money)C++14
100 / 100
244 ms57108 KiB
#include<bits/stdc++.h> #define TASKNAME "bieudo" #define pb push_back #define pli pair<int,int> #define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); using namespace std; using ll=long long; const ll maxN=1e6+10; const ll inf=1e18; const ll mod=1e9+7; ll bit[maxN]; ll a[maxN]; vector<ll> vec[maxN]; ll n; void update(ll i,ll val) { while(i<=1e6) { bit[i]+=val; i+=(i&(-i)); } } ll get(ll i) { ll cc=0; while(i>0) { cc+=bit[i]; i-=(i&(-i)); } return cc; } ll getlr(ll i,ll j) { if(i>j) return 0; return get(j)-get(i-1); } void solve() { cin >> n; for(int i=1;i<=n;i++) { cin >> a[i]; } a[0]=0; ll cnt=0; for(int i=1;i<=n;i++) { ll j=i+1; cnt++; vec[cnt].pb(a[i]); while(j<=n&&a[j]>=a[j-1]) { vec[cnt].pb(a[j]); j++; } i=j-1; } for(auto zz:vec[1]) { update(zz,1); } ll ans=cnt; for(int i=2;i<=cnt;i++) { ll pre=vec[i][0]; for(int j=1;j<vec[i].size();j++) { if(getlr(pre+1,vec[i][j]-1)>0) { ans++; pre=vec[i][j]; } } for(auto zz:vec[i]) { update(zz,1); } } cout << ans; } int main() { fastio //freopen(TASKNAME".INP","r",stdin); //freopen(TASKNAME".OUT","w",stdout); solve(); }

Compilation message (stderr)

money.cpp: In function 'void solve()':
money.cpp:67:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |         for(int j=1;j<vec[i].size();j++)
      |                     ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...