Submission #1214113

#TimeUsernameProblemLanguageResultExecution timeMemory
1214113Nika533Global Warming (CEOI18_glo)C++17
10 / 100
278 ms15804 KiB
#pragma GCC diagnostic warning "-std=c++11" #include <bits/stdc++.h> #define pb push_back #define f first #define s second #define MOD 1000000007 #define flush fflush(stdout) #define all(x) (x).begin(),(x).end() #define allr(x) (x).rbegin(), (x).rend() #define pii pair<int,int> using namespace std; const int N=2e5+5; int n,m,T,k; int t[N*4]; void build(int v, int tl, int tr) { if (tl==tr) { t[v]=0; return; } int mid=(tl+tr)/2; build(v*2,tl,mid); build(v*2+1,mid+1,tr); t[v]=0; } void update(int v, int tl, int tr, int ind, int val) { if (tl==tr) { t[v]=val; return; } int mid=(tl+tr)/2; if (ind<=mid) update(v*2,tl,mid,ind,val); else update(v*2+1,mid+1,tr,ind,val); t[v]=max(t[v*2],t[v*2+1]); } int query(int v, int tl, int tr, int l, int r) { if (l>r) return 0; if (tl==l && tr==r) return t[v]; int mid=(tl+tr)/2; return max(query(v*2,tl,mid,l,min(r,mid)),query(v*2+1,mid+1,tr,max(l,mid+1),r)); } void test_case() { cin>>n>>k; int arr[n+1],a[n+1],b[n+1]; map<int,int> mymap; vector<int> prefdp(n+1,0),sufdp(n+2,0); for (int i=1; i<=n; i++) { cin>>arr[i]; } for (int i=1; i<=n; i++) { a[i]=arr[i]; } sort(a+1,a+1+n); for (int i=1; i<=n; i++) { mymap[a[i]]=i; } for (int i=1; i<=n; i++) { b[i]=mymap[arr[i]]; } build(1,1,n); for (int i=1; i<=n; i++) { prefdp[i]=query(1,1,n,1,b[i]-1)+1; update(1,1,n,b[i],prefdp[i]); } build(1,1,n); for (int i=n; i>=1; i--) { sufdp[i]=query(1,1,n,b[i]+1,n)+1;; update(1,1,n,b[i],sufdp[i]); } int ans=0; for (int i=1; i<=n; i++) { ans=max(ans,prefdp[i]); } cout<<ans<<endl; } int main () { ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0); T=1; while (T--) test_case(); }

Compilation message (stderr)

glo.cpp:1:32: warning: '-std=c++11' is not an option that controls warnings [-Wpragmas]
    1 | #pragma GCC diagnostic warning "-std=c++11"
      |                                ^~~~~~~~~~~~
#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...