Submission #939969

#TimeUsernameProblemLanguageResultExecution timeMemory
939969Marco_EscandonGroup Photo (JOI21_ho_t3)C++11
100 / 100
905 ms196528 KiB
#include<bits/stdc++.h> using namespace std; #define optimizar_io ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);cout.setf(ios::fixed);cout.precision(9); #pragma GCC optimize("Ofast") typedef long long ll; struct Fenwick_tree { ll n; vector<ll> T; void update(ll a, ll b) { for(; a<n; a+=(a&(-a))) T[a]+=b; } ll query(ll a) { ll ans=0; for(; a>0; a-=(a&(-a))) ans+=T[a]; return ans; } ll query(ll a, ll b) { return query(b) - query(a-1); } Fenwick_tree(ll N){ n = N * 2; T.assign(n, 0); } }; int main() { optimizar_io ll n; cin>>n; ll cad[n+1]; for(int i=1; i<=n; i++) cin>>cad[i]; ll dp1[n+1][n+1]; ll dp[n+1]; for(int i=1; i<=n; i++) { Fenwick_tree asd(n+5); dp[i]=1e9; ll cont=0; for(int j=0; j<=n; j++) { dp1[i][j]=0; } for(int j=1; j<=n; j++) { if(cad[j]<i) continue; //if(cad[j]==4){ cout<<asd.query(i,cad[j])<<" "<<asd.query(cad[j],n)<<" "<<(cad[j]-i)-asd.query(i,cad[j])<<"\n";} dp1[i][cad[j]]+=asd.query(i,cad[j]); dp1[i][cad[j]]+=asd.query(cad[j],n); dp1[i][cad[j]]-=(cad[j]-i)-asd.query(i,cad[j]); asd.update(cad[j],1); } for(int j=1; j<=n; j++) dp1[i][j]+=dp1[i][j-1]; } dp[0]=0; for(int i=1; i<=n; i++) { for(int j=1; j<=i; j++) { dp[i]=min(dp[i],dp[j-1]+dp1[j][i]); } } cout<<dp[n]; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:40:12: warning: unused variable 'cont' [-Wunused-variable]
   40 |         ll cont=0;
      |            ^~~~
#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...