Submission #1168212

#TimeUsernameProblemLanguageResultExecution timeMemory
1168212dnnndaAliens (IOI16_aliens)C++20
12 / 100
79 ms2376 KiB
#include<bits/stdc++.h>
using namespace std;
#define S second
#define F first
#define ll long long
//#define int long long
//#pragma GCC optimize("Ofast, unroll-loop")
//#pragma GCC target("avx,avx2")
#pragma GCC optimize("O3")
#define init(arr,val) memset(arr,val,sizeof(arr))
const int inf=0x3f3f3f3f;
const ll inff=0x3f3f3f3f3f3f3f3f;
//const int X=1000000007;
const int X=998244353;

ll dp[505][505];
int l[505], r[505];

ll take_photos(int n, int m, int K, vector<int> _r, vector<int> _c){
    init(dp,0x3f);
    dp[0][0]=0;
    vector<pair<int,int>> v, v2;
    for(int i=0 ; i<n ; i++){
        if(_r[i]>_c[i]) swap(_r[i],_c[i]);
        v.push_back({_r[i],_c[i]});
    }
    sort(v.begin(),v.end());
    for(int i=0 ; i<n ; i++){
        if(v2.empty()||v[i].S>v2.back().S) v2.push_back(v[i]);
    }
    n=v2.size();
    for(int i=0 ; i<n ; i++) l[i+1]=v2[i].F, r[i+1]=v2[i].S;
    for(int i=1 ; i<=n ; i++) for(int j=1 ; j<=K ; j++){
        for(int k=0 ; k<i ; k++) dp[i][j]=min(dp[i][j],dp[k][j-1]+1LL*(r[i]-l[k+1]+1)*(r[i]-l[k+1]+1));
        //cout << "dp[" << i << "][" << j << "]=" << dp[i][j] << '\n';
    }
    ll ans=inff;
    for(int j=1 ; j<=K ; j++) ans=min(ans,dp[n][j]);
    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...