제출 #389014

#제출 시각아이디문제언어결과실행 시간메모리
389014mehrdad_sohrabiAliens (IOI16_aliens)C++14
0 / 100
5 ms8140 KiB
// Black lives matter #include <bits/stdc++.h> #include "aliens.h" /// 500 485 462 A4 using namespace std; typedef long long int ll; typedef complex<double> point; typedef long double ld; #define pb push_back #define pii pair < ll , ll > #define F first #define S second //#define endl '\n' #define int long long #define sync ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") #define kill(x) return cout<<x<<'\n', 0; const int N=5e3+10,M=1e6+100,inf=(ll)1e15; ll dp[N][N]; ll A[M]; long long take_photos(int32_t n, int32_t m, int32_t k, std::vector<int32_t> r, std::vector<int32_t> c){ for (int i=0;i<M;i++) A[i]=i; for (int i=0;i<n;i++){ ll x=r[i],y=c[i]; A[max(x,y)]=min(A[max(x,y)],min(x,y)-1); } vector <pii> B; for (int i=0;i<m;i++){ if (A[i]<i){ while(B.size() && B.back().F>=A[i]) B.pop_back(); B.pb({A[i],i}); } } // for (auto u : B){ // cout << u.F << " " << u.S << endl; //} ll t=B.size(); for (int i=1;i<=t;i++){ dp[i][1]=(B[i-1].S-B[0].F)*(B[i-1].S-B[0].F); } for (int i=2;i<=k;i++){ for (int j=1;j<=t;j++){ dp[j][t]=inf; for (int l=1;l<=j;l++){ ll z=0; if (l>1){ if (B[l-1].F<B[l-2].S){ z=(B[l-2].S-B[l-1].F)*((B[l-2].S-B[l-1].F)); } } dp[j][i]=min(dp[j][i],dp[l-1][i-1]+(B[j-1].S-B[l-1].F)*(B[j-1].S-B[l-1].F)-z); } } } return dp[t][k]; } /* int32_t main() { int n, m, k; assert(3 == scanf("%d %d %d", &n, &m, &k)); std::vector<int32_t> r(n), c(n); for (int i = 0; i < n; i++) { assert(2 == scanf("%d %d", &r[i], &c[i])); } long long ans = take_photos(n, m, k, r, c); printf("%lld\n", ans); return 0; } */ /* 5 7 2 0 3 4 4 4 6 4 5 4 6 */ //take_photos(5, 7, 2, [0, 4, 4, 4, 4], [3, 4, 6, 5, 6])
#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...