Submission #764709

# Submission time Handle Problem Language Result Execution time Memory
764709 2023-06-24T01:02:02 Z Valters07 Aliens (IOI16_aliens) C++14
4 / 100
3 ms 340 KB
#include <bits/stdc++.h>
#include "aliens.h"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#define fio ios_base::sync_with_stdio(0);cin.tie(0);
#define ll long long
#define ld long double
#define en cin.close();return 0;
#define pb push_back
#define fi first//printf("%lli\n",cur);
#define se second//scanf("%lli",&n);
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
struct node
{
    ld x, a, b;
    ll k;
};
deque<node> hull;
void clean(vector<pair<ld,ld> > &seg)
{
    sort(seg.begin(),seg.end(),[](auto &i, auto &j)
    {
        if(i.fi==j.fi)
            return (i.se>j.se);
        return (i.fi<j.fi);
    });
    vector<pair<ld,ld> > tmp;
    ld r = 0;
    for(auto x:seg)
    {
        if(x.se>r)
            tmp.pb(x);
        r=max(r,x.se);
    }
    swap(seg,tmp);
}
ld getval(ld x, ld a, ld b)
{
    return x*a+b;
}
ld inters(ld a1, ld b1, ld a2, ld b2)
{
    return (b1-b2)/(a2-a1);
}
void addline(ld a, ld b, ll k)
{
    while(!hull.empty())
    {
        auto t = hull.back();
        if(getval(t.x,a,b)>getval(t.x,t.a,t.b))
        {
            if(t.a-a)
                hull.pb({inters(t.a,t.b,a,b),a,b,k});
            return;
        }
        hull.pop_back();
    }
    hull.pb({-2e9,a,b,k});
}
pair<ld,int> getmax(ld x)
{
    while(hull.size()>1&&hull[1].x<=x)
        hull.pop_front();
    auto t = hull[0];
    return {getval(x,t.a,t.b),t.k};
}
ll take_photos(int n, int m, int k, vector<int> row, vector<int> col)
{
    vector<pair<ld,ld> > seg(n);
    for(int i = 0;i<n;i++)
    {
        if(row[i]>col[i])
            swap(row[i],col[i]);
        seg[i]={row[i]+1,col[i]+1};
    }
    clean(seg);
    n=seg.size();
    k=min(k,n);
    ld coll[n];
    coll[0]=0;
    for(int i = 1,t;i<n;i++)
        t=max((ld)0,seg[i-1].se-seg[i].fi+1),
        coll[i]=t*t;
    ld l = 0, r = m*m;
    vector<ld> dp(n+1), kc(n+1);
    while(kc[n]!=k&&r-l>1e-18)
    {
        ld mid = (l+r)/2;
        for(int i = 0;i<n;i++)
        {
            ld l = seg[i].fi, r = seg[i].se;
            addline(-2*l,dp[i]-coll[i]+l*(l-2),kc[i]+1);
            auto t = getmax(r);
            dp[i+1]=t.fi+r*(r+2)+1+mid;
            kc[i+1]=t.se;
        }
        if(kc[n]>k)
            l=mid;
        else
            r=mid;
        hull.clear();
    }
    return round(dp[n]-kc[n]*r);
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Correct answer: answer = 4
2 Correct 0 ms 212 KB Correct answer: answer = 4
3 Correct 0 ms 212 KB Correct answer: answer = 4
4 Correct 0 ms 212 KB Correct answer: answer = 12
5 Correct 0 ms 212 KB Correct answer: answer = 52
6 Correct 0 ms 212 KB Correct answer: answer = 210
7 Correct 0 ms 212 KB Correct answer: answer = 88
8 Correct 0 ms 212 KB Correct answer: answer = 7696
9 Correct 1 ms 212 KB Correct answer: answer = 1
10 Correct 1 ms 212 KB Correct answer: answer = 2374
11 Correct 0 ms 212 KB Correct answer: answer = 9502
12 Correct 1 ms 212 KB Correct answer: answer = 49
13 Correct 0 ms 212 KB Correct answer: answer = 151
14 Correct 0 ms 212 KB Correct answer: answer = 7550
15 Correct 0 ms 212 KB Correct answer: answer = 7220
16 Correct 1 ms 212 KB Correct answer: answer = 7550
17 Correct 0 ms 212 KB Correct answer: answer = 10000
18 Correct 0 ms 212 KB Correct answer: answer = 10000
19 Correct 0 ms 212 KB Correct answer: answer = 624
20 Correct 1 ms 212 KB Correct answer: answer = 10000
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Correct answer: answer = 1
2 Correct 1 ms 212 KB Correct answer: answer = 4
3 Correct 0 ms 212 KB Correct answer: answer = 1
4 Correct 0 ms 212 KB Correct answer: answer = 5
5 Correct 0 ms 212 KB Correct answer: answer = 41
6 Correct 0 ms 212 KB Correct answer: answer = 71923
7 Correct 1 ms 212 KB Correct answer: answer = 77137
8 Correct 2 ms 340 KB Correct answer: answer = 764
9 Correct 1 ms 340 KB Correct answer: answer = 250000
10 Correct 1 ms 340 KB Correct answer: answer = 500
11 Correct 0 ms 212 KB Correct answer: answer = 32
12 Correct 0 ms 340 KB Correct answer: answer = 130050
13 Correct 2 ms 340 KB Correct answer: answer = 5110
14 Correct 1 ms 212 KB Correct answer: answer = 2626
15 Correct 1 ms 212 KB Correct answer: answer = 796
16 Correct 1 ms 340 KB Correct answer: answer = 7580
17 Incorrect 3 ms 340 KB Wrong answer: output = 1988, expected = 1904
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Correct answer: answer = 4
2 Correct 0 ms 212 KB Correct answer: answer = 4
3 Correct 0 ms 212 KB Correct answer: answer = 4
4 Correct 0 ms 212 KB Correct answer: answer = 12
5 Correct 0 ms 212 KB Correct answer: answer = 52
6 Correct 0 ms 212 KB Correct answer: answer = 210
7 Correct 0 ms 212 KB Correct answer: answer = 88
8 Correct 0 ms 212 KB Correct answer: answer = 7696
9 Correct 1 ms 212 KB Correct answer: answer = 1
10 Correct 1 ms 212 KB Correct answer: answer = 2374
11 Correct 0 ms 212 KB Correct answer: answer = 9502
12 Correct 1 ms 212 KB Correct answer: answer = 49
13 Correct 0 ms 212 KB Correct answer: answer = 151
14 Correct 0 ms 212 KB Correct answer: answer = 7550
15 Correct 0 ms 212 KB Correct answer: answer = 7220
16 Correct 1 ms 212 KB Correct answer: answer = 7550
17 Correct 0 ms 212 KB Correct answer: answer = 10000
18 Correct 0 ms 212 KB Correct answer: answer = 10000
19 Correct 0 ms 212 KB Correct answer: answer = 624
20 Correct 1 ms 212 KB Correct answer: answer = 10000
21 Correct 0 ms 212 KB Correct answer: answer = 1
22 Correct 1 ms 212 KB Correct answer: answer = 4
23 Correct 0 ms 212 KB Correct answer: answer = 1
24 Correct 0 ms 212 KB Correct answer: answer = 5
25 Correct 0 ms 212 KB Correct answer: answer = 41
26 Correct 0 ms 212 KB Correct answer: answer = 71923
27 Correct 1 ms 212 KB Correct answer: answer = 77137
28 Correct 2 ms 340 KB Correct answer: answer = 764
29 Correct 1 ms 340 KB Correct answer: answer = 250000
30 Correct 1 ms 340 KB Correct answer: answer = 500
31 Correct 0 ms 212 KB Correct answer: answer = 32
32 Correct 0 ms 340 KB Correct answer: answer = 130050
33 Correct 2 ms 340 KB Correct answer: answer = 5110
34 Correct 1 ms 212 KB Correct answer: answer = 2626
35 Correct 1 ms 212 KB Correct answer: answer = 796
36 Correct 1 ms 340 KB Correct answer: answer = 7580
37 Incorrect 3 ms 340 KB Wrong answer: output = 1988, expected = 1904
38 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Correct answer: answer = 4
2 Correct 0 ms 212 KB Correct answer: answer = 4
3 Correct 0 ms 212 KB Correct answer: answer = 4
4 Correct 0 ms 212 KB Correct answer: answer = 12
5 Correct 0 ms 212 KB Correct answer: answer = 52
6 Correct 0 ms 212 KB Correct answer: answer = 210
7 Correct 0 ms 212 KB Correct answer: answer = 88
8 Correct 0 ms 212 KB Correct answer: answer = 7696
9 Correct 1 ms 212 KB Correct answer: answer = 1
10 Correct 1 ms 212 KB Correct answer: answer = 2374
11 Correct 0 ms 212 KB Correct answer: answer = 9502
12 Correct 1 ms 212 KB Correct answer: answer = 49
13 Correct 0 ms 212 KB Correct answer: answer = 151
14 Correct 0 ms 212 KB Correct answer: answer = 7550
15 Correct 0 ms 212 KB Correct answer: answer = 7220
16 Correct 1 ms 212 KB Correct answer: answer = 7550
17 Correct 0 ms 212 KB Correct answer: answer = 10000
18 Correct 0 ms 212 KB Correct answer: answer = 10000
19 Correct 0 ms 212 KB Correct answer: answer = 624
20 Correct 1 ms 212 KB Correct answer: answer = 10000
21 Correct 0 ms 212 KB Correct answer: answer = 1
22 Correct 1 ms 212 KB Correct answer: answer = 4
23 Correct 0 ms 212 KB Correct answer: answer = 1
24 Correct 0 ms 212 KB Correct answer: answer = 5
25 Correct 0 ms 212 KB Correct answer: answer = 41
26 Correct 0 ms 212 KB Correct answer: answer = 71923
27 Correct 1 ms 212 KB Correct answer: answer = 77137
28 Correct 2 ms 340 KB Correct answer: answer = 764
29 Correct 1 ms 340 KB Correct answer: answer = 250000
30 Correct 1 ms 340 KB Correct answer: answer = 500
31 Correct 0 ms 212 KB Correct answer: answer = 32
32 Correct 0 ms 340 KB Correct answer: answer = 130050
33 Correct 2 ms 340 KB Correct answer: answer = 5110
34 Correct 1 ms 212 KB Correct answer: answer = 2626
35 Correct 1 ms 212 KB Correct answer: answer = 796
36 Correct 1 ms 340 KB Correct answer: answer = 7580
37 Incorrect 3 ms 340 KB Wrong answer: output = 1988, expected = 1904
38 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Correct answer: answer = 4
2 Correct 0 ms 212 KB Correct answer: answer = 4
3 Correct 0 ms 212 KB Correct answer: answer = 4
4 Correct 0 ms 212 KB Correct answer: answer = 12
5 Correct 0 ms 212 KB Correct answer: answer = 52
6 Correct 0 ms 212 KB Correct answer: answer = 210
7 Correct 0 ms 212 KB Correct answer: answer = 88
8 Correct 0 ms 212 KB Correct answer: answer = 7696
9 Correct 1 ms 212 KB Correct answer: answer = 1
10 Correct 1 ms 212 KB Correct answer: answer = 2374
11 Correct 0 ms 212 KB Correct answer: answer = 9502
12 Correct 1 ms 212 KB Correct answer: answer = 49
13 Correct 0 ms 212 KB Correct answer: answer = 151
14 Correct 0 ms 212 KB Correct answer: answer = 7550
15 Correct 0 ms 212 KB Correct answer: answer = 7220
16 Correct 1 ms 212 KB Correct answer: answer = 7550
17 Correct 0 ms 212 KB Correct answer: answer = 10000
18 Correct 0 ms 212 KB Correct answer: answer = 10000
19 Correct 0 ms 212 KB Correct answer: answer = 624
20 Correct 1 ms 212 KB Correct answer: answer = 10000
21 Correct 0 ms 212 KB Correct answer: answer = 1
22 Correct 1 ms 212 KB Correct answer: answer = 4
23 Correct 0 ms 212 KB Correct answer: answer = 1
24 Correct 0 ms 212 KB Correct answer: answer = 5
25 Correct 0 ms 212 KB Correct answer: answer = 41
26 Correct 0 ms 212 KB Correct answer: answer = 71923
27 Correct 1 ms 212 KB Correct answer: answer = 77137
28 Correct 2 ms 340 KB Correct answer: answer = 764
29 Correct 1 ms 340 KB Correct answer: answer = 250000
30 Correct 1 ms 340 KB Correct answer: answer = 500
31 Correct 0 ms 212 KB Correct answer: answer = 32
32 Correct 0 ms 340 KB Correct answer: answer = 130050
33 Correct 2 ms 340 KB Correct answer: answer = 5110
34 Correct 1 ms 212 KB Correct answer: answer = 2626
35 Correct 1 ms 212 KB Correct answer: answer = 796
36 Correct 1 ms 340 KB Correct answer: answer = 7580
37 Incorrect 3 ms 340 KB Wrong answer: output = 1988, expected = 1904
38 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Correct answer: answer = 4
2 Correct 0 ms 212 KB Correct answer: answer = 4
3 Correct 0 ms 212 KB Correct answer: answer = 4
4 Correct 0 ms 212 KB Correct answer: answer = 12
5 Correct 0 ms 212 KB Correct answer: answer = 52
6 Correct 0 ms 212 KB Correct answer: answer = 210
7 Correct 0 ms 212 KB Correct answer: answer = 88
8 Correct 0 ms 212 KB Correct answer: answer = 7696
9 Correct 1 ms 212 KB Correct answer: answer = 1
10 Correct 1 ms 212 KB Correct answer: answer = 2374
11 Correct 0 ms 212 KB Correct answer: answer = 9502
12 Correct 1 ms 212 KB Correct answer: answer = 49
13 Correct 0 ms 212 KB Correct answer: answer = 151
14 Correct 0 ms 212 KB Correct answer: answer = 7550
15 Correct 0 ms 212 KB Correct answer: answer = 7220
16 Correct 1 ms 212 KB Correct answer: answer = 7550
17 Correct 0 ms 212 KB Correct answer: answer = 10000
18 Correct 0 ms 212 KB Correct answer: answer = 10000
19 Correct 0 ms 212 KB Correct answer: answer = 624
20 Correct 1 ms 212 KB Correct answer: answer = 10000
21 Correct 0 ms 212 KB Correct answer: answer = 1
22 Correct 1 ms 212 KB Correct answer: answer = 4
23 Correct 0 ms 212 KB Correct answer: answer = 1
24 Correct 0 ms 212 KB Correct answer: answer = 5
25 Correct 0 ms 212 KB Correct answer: answer = 41
26 Correct 0 ms 212 KB Correct answer: answer = 71923
27 Correct 1 ms 212 KB Correct answer: answer = 77137
28 Correct 2 ms 340 KB Correct answer: answer = 764
29 Correct 1 ms 340 KB Correct answer: answer = 250000
30 Correct 1 ms 340 KB Correct answer: answer = 500
31 Correct 0 ms 212 KB Correct answer: answer = 32
32 Correct 0 ms 340 KB Correct answer: answer = 130050
33 Correct 2 ms 340 KB Correct answer: answer = 5110
34 Correct 1 ms 212 KB Correct answer: answer = 2626
35 Correct 1 ms 212 KB Correct answer: answer = 796
36 Correct 1 ms 340 KB Correct answer: answer = 7580
37 Incorrect 3 ms 340 KB Wrong answer: output = 1988, expected = 1904
38 Halted 0 ms 0 KB -