Submission #987701

#TimeUsernameProblemLanguageResultExecution timeMemory
9877010pt1mus23Money (IZhO17_money)C++14
0 / 100
2 ms4700 KiB
#pragma GCC optimize("O3", "inline") #include <bits/stdc++.h> using namespace std; #define all(v) v.begin(), v.end() #define ins insert #define pb push_back #define int long long #define pii pair<int, int> #define endl '\n' #define drop(x) cout<<(x)<<endl;return; #define reach cerr << "reached >.<!" << endl; /* m : 11059739 -> l ~23 p : 4567896467 */ // mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); const int mod = 1e9 + 7, sze = 1e6 + 5, inf = LLONG_MAX, prime = 2333; //\\ dp / binary search / greedy / sprase table / segment tree // int T[sze]; void upd(int node,int v){ node++; while(node<sze){ T[node]+=v; node += (node & -node); } } int query(int node){ node++; int sum=0; while(node>0){ sum+=T[node]; node -= (node & -node); } return sum; } int query(int l,int r){ return query(r) - query(l-1); } void gkd(){ int n; cin>>n; vector<int> arr(n); for(int i=0;i<n;i++){ cin>>arr[i]; } map<int,int> used; int ans=0; for(int i=0;i<n;i++){ if(!used[arr[i]]){ ans++; used[arr[i]]=1; vector<int> up; // upd(arr[i],1); up.pb(arr[i]); for(int j=i+1;j<n;j++){ if(arr[j-1]>arr[j] || query(arr[i]+1, arr[j]-1)){ break; } used[arr[j]]=1; // upd(arr[j],1); up.pb(arr[j]); } for(auto v:up){ upd(v,1); } } } drop(ans); } signed main() { cin.tie(0)->sync_with_stdio(0); int tt = 1; //cin>>tt; while (tt--)gkd(); }

Compilation message (stderr)

money.cpp:19:1: warning: multi-line comment [-Wcomment]
   19 | //\\
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...