Submission #492848

#TimeUsernameProblemLanguageResultExecution timeMemory
492848balbitAliens (IOI16_aliens)C++14
Compilation error
0 ms0 KiB
#include "aliens.h" #include <bits/stdc++.h> #define int ll using namespace std; #define ll long long #define y1 zck_is_king #define pii pair<ll, ll> #define ull unsigned ll #define f first #define s second #define ALL(x) x.begin(),x.end() #define SZ(x) (int)x.size() #define SQ(x) (x)*(x) #define MN(a,b) a = min(a,(__typeof__(a))(b)) #define MX(a,b) a = max(a,(__typeof__(a))(b)) #define pb push_back #define REP(i,n) for (int i = 0; i<n; ++i) #define RREP(i,n) for (int i = n-1; i>=0; --i) #define REP1(i,n) for (int i = 1; i<=n; ++i) #define SORT_UNIQUE(c) (sort(c.begin(),c.end()), c.resize(distance(c.begin(),unique(c.begin(),c.end())))) #ifdef BALBIT #define IOS() #define bug(...) fprintf(stderr,"#%d (%s) = ",__LINE__,#__VA_ARGS__),_do(__VA_ARGS__); template<typename T> void _do(T &&x){cerr<<x<<endl;} template<typename T, typename ...S> void _do(T &&x, S &&...y){cerr<<x<<", ";_do(y...);} #else #define IOS() ios_base::sync_with_stdio(0);cin.tie(0); #define endl '\n' #define bug(...) #endif const int iinf = 1e9+10; const ll inf = 1ll<<60; const ll mod = 1e9+7 ; void GG(){cout<<"0\n"; exit(0);} ll mpow(ll a, ll n, ll mo = mod){ // a^n % mod ll re=1; while (n>0){ if (n&1) re = re*a %mo; a = a*a %mo; n>>=1; } return re; } ll inv (ll b, ll mo = mod){ if (b==1) return b; return (mo-mo/b) * inv(mo%b,mo) % mo; } const int MM = 1e6+5; const int NN = 1e5+5; int reach[MM]; // where does this point reach ll over[NN]; // overcount for this index ll dp[NN], take[NN]; int at[NN], to[NN]; pii brute(int n,ll pen) { // pen is (positive) penalty for each thing chosen REP(i,n+1) { if (i!=n && at[i] > to[i+1]) { over[i] = SQ(at[i] - to[i+1]); } if (i) { dp[i] = inf; take[i] = 0; REP(j,i) { pii yo=pii{pen + SQ(at[i]) + -2 * at[i] * to[j+1] + SQ(to[j+1]) + over[j] + dp[j], take[j]+1}; if (make_pair(dp[i], take[i]) > yo) { tie(dp[i], take[i]) = yo; } } bug(i, dp[i], take[i]); } } return pii{dp[n], take[n]}; } long long take_photos(int n, int m, int k, std::vector<int> ROW, std::vector<int> COL) { ll re = 0; memset(reach, 0x3f, sizeof reach); REP(i,n) { int a = ROW[i], b = COL[i]; if (a > b) swap(a,b); MN(reach[b], a); } int nowdep = (0x3f3f3f3f)-1; vector<pii> use; for (int i = m-1; i>=0; --i) { if (reach[i] < nowdep) { nowdep = reach[i]; use.emplace_back(i, reach[i]); bug(i, reach[i]); } } reverse(ALL(use)); bug (SZ(use)); at[0] = to[0] = -1; REP(i, SZ(use)){ at[i+1] = use[i].f; to[i+1] = use[i].s-1; } { ll l = 0, r = 1e13; while (l!=r) { ll mid = (l+r)/2; pii hi = brute(SZ(use), mid); if (hi.s > k) { // taking too many! penalize!!! l = mid+1; }else{ r = mid; } } bug(l); pii go = brute(SZ(use), l); ll re = (go.s) * -l + go.f; bug(re, go.f, go.s); return re; } } //signed main(){ // ll r = take_photos(5, 7, 2, vector<int>{0, 4, 4, 4, 4}, vector<int>{3, 4, 6, 5, 6}); // cout<<r<<endl; //} //signed main(){ // //}

Compilation message (stderr)

aliens.cpp: In function 'long long int take_photos(long long int, long long int, long long int, std::vector<long long int>, std::vector<long long int>)':
aliens.cpp:88:8: warning: unused variable 're' [-Wunused-variable]
   88 |     ll re = 0;
      |        ^~
/usr/bin/ld: /tmp/ccS3ZldH.o: in function `main':
grader.cpp:(.text.startup+0xf0): undefined reference to `take_photos(int, int, int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status