Submission #382354

#TimeUsernameProblemLanguageResultExecution timeMemory
382354kshitij_sodaniAliens (IOI16_aliens)C++14
12 / 100
162 ms4332 KiB
//#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
typedef long long llo;
#define mp make_pair
#define pb push_back
#define a first 
#define b second
#define xx int
//#define endl '\n'



#include "aliens.h"
int mi[1000001];
llo dp[4001][4001];
long long take_photos(xx n, xx m, xx k,vector<xx> aa,vector<xx> bb) {
	vector<pair<llo,llo>> ss;
    for(llo i=0;i<m;i++){
    	mi[i]=-1;
    }
    for(llo i=0;i<n;i++){
    	mi[min(aa[i],bb[i])]=max(mi[min(aa[i],bb[i])],max(aa[i],bb[i]));
    	
   	}
   	llo cur=-1;
   	for(llo i=0;i<m;i++){
   		if(mi[i]!=-1){
   			if(mi[i]>cur){
   				ss.pb({i,mi[i]});
   				cur=mi[i];
   			}
   		}
   	}
   	for(llo i=1;i<=k;i++){
   		for(llo j=0;j<ss.size();j++){
   			dp[j][i]=(ss[j].b-ss[0].a+1);
   			dp[j][i]*=dp[j][i];
   			if(i==1){
   				continue;
   			}
   			for(llo ii=0;ii<j;ii++){
   				llo cur=max(ss[ii].b+1-ss[j].a,(llo)0);
   				cur*=cur;
   				dp[j][i]=min(dp[j][i],dp[ii][i-1]+(ss[j].b-ss[ii+1].a+1)*(ss[j].b-ss[ii+1].a+1)+cur);
   			}
   		}
   	}
   /*	cout<<dp[0][1]<<"::"<<dp[1][1]<<endl;
   	for(auto j:ss){
   		cout<<j.a<<":"<<j.b<<endl;
   	}
   	cout<<endl;*/

















    return dp[ss.size()-1][k];
}

Compilation message (stderr)

aliens.cpp: In function 'long long int take_photos(int, int, int, std::vector<int>, std::vector<int>)':
aliens.cpp:36:19: warning: comparison of integer expressions of different signedness: 'llo' {aka 'long long int'} and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |      for(llo j=0;j<ss.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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...