Submission #1326591

#TimeUsernameProblemLanguageResultExecution timeMemory
1326591Faisal_SaqibAliens (IOI16_aliens)C++20
25 / 100
1729 ms12460 KiB
#include <vector> #include <iostream> using namespace std; typedef long long ll; const int M=1002,N=502; const ll inf=1e18; ll dp[M][N],ndp[M][N]; ll take_photos(int n,int m,int k1,vector<int> r,vector<int> c) { vector<int> a(m+2,0); for(int i=0;i<n;i++) { int x=min(r[i],c[i]); a[x]=max(a[x],r[i]+c[i]-x-x+1); // cout<<x<<' '<<r[i]<<' '<<c[i]<<endl; } for(int j=0;j<=m;j++) { // cout<<a[j]<<' '; for(int i=0;i<=n;i++) { dp[j][i]=ndp[j][i]=inf; } } // cout<<endl; dp[0][0]=0; for(int i=0;i<=m;i++) { // cout<<"Dp value for "<<i<<endl; // for(int p=0;p<=m;p++) // { // for(int k=0;k<=n;k++) // { // cout<<dp[p][k]<<' '; // } // cout<<endl; // } // cout<<endl; vector<ll> mi(m+2,inf); for(int k=0;k<=n;k++) { for(int p=0;p<=m;p++) { dp[p][k]=min(dp[p][k],mi[p]+(1ll*p*p)); mi[p]=min(mi[p],dp[p][k]-(1ll*p*p)); if(p)mi[p]=min(mi[p],mi[p-1]); } } // cout<<"Dp value for "<<i<<endl; // for(int p=0;p<=m;p++) // { // for(int k=0;k<=n;k++) // { // cout<<dp[p][k]<<' '; // } // cout<<endl; // } // cout<<endl; // if(i==m)continue; for(int p=m;p>=0;p--) { for(int k=0;k<=n;k++) { if(p>=a[i]) { // cout<<"updating "<<max(p-1,0)<<' '<<k<<' '<<dp[p][k]<<endl; ndp[max(p-1,0)][k]=min(ndp[max(p-1,0)][k],dp[p][k]); } dp[p][k]=ndp[p][k]; ndp[p][k]=inf; } } } ll ans=inf; // cout<<"Dp value for "<<i<<endl; for(int p=0;p<=m;p++) { for(int k=0;k<=k1;k++) { ans=min(ans,dp[p][k]); // cout<<dp[p][k]<<' '; } // cout<<endl; } // cout<<endl; return ans; }

Compilation message (stderr)

aliens.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
aliens_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...