# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
382357 | kshitij_sodani | Aliens (IOI16_aliens) | C++14 | 163 ms | 4332 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//#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];
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |