Submission #772822

# Submission time Handle Problem Language Result Execution time Memory
772822 2023-07-04T11:38:17 Z ZHIRDILBILDIZ A Difficult(y) Choice (BOI21_books) C++14
60 / 100
2 ms 1836 KB
#include<bits/stdc++.h>
#include"books.h"
#define ll long long
#define fi first
#define se second
using namespace std ;
//void impossible()
//{
//    cout << "-1\n" ;
//    exit(0) ;
//}
//void answer(vector<int> ans)
//{
//    for(int i : ans)
//        cout << i << ' ' ;
//    exit(0) ;
//}
//ll skim(int ind)
//{
//    int num ;
//    cout << "? " << ind << '\n' ;
//    cin >> num ;
//    return num ;
//}
void solve(int n, int k, ll a, int s)
{
    vector<int> ans ;
    ll x[n + 1] = {}, pref[n + 1] = {} ;
    for(int i = 1 ; i <= k ; i++)
    {
        x[i] = skim(i) ;
        pref[i] = pref[i - 1] + x[i] ;
    }
    if(pref[k] > 2ll * a)
        impossible() ;
    if(a <= pref[k] && pref[k] <= 2ll * a)
    {
        for(int i = 1 ; i <= k ; i++)
            ans.push_back(i) ;
        answer(ans) ;
    }
//    if(s >= n)
//    {
//        for(int i = k + 1 ; i <= n ; i++)
//        {
//            x[i] = skim(i) ;
//            pref[i] = pref[i - 1] + x[i] ;
//        }
//        for(int i = 1 ; i <= n ; i++)
//            if(x[i] >= a && pref[k - 1] + x[i] <= 2ll * a)
//            {
//                for(int j = 1 ; j < k ; j++)
//                    ans.push_back(j) ;
//                ans.push_back(i) ;
//                answer(ans) ;
//            }
//        for(int i = k ; i <= n ; i++)
//            if(a <= pref[i] - pref[i - k] && pref[i] - pref[i - k] <= 2ll * a)
//            {
//                for(int j = i - k + 1 ; j <= i ; j++)
//                    ans.push_back(j) ;
//                answer(ans) ;
//            }
//        impossible() ;
//    }
    ll l = 0, r = n + 1 ;
    while(l + 1 < r)
    {
        ll mid = (l + r) >> 1ll, num = x[mid] ;
        if(!num)
        {
            num = skim(mid) ;
            x[mid] = num ;
        }
        if(num < a)l = mid ;
        else r = mid ;
    }
    if(r != n + 1 && x[r] + pref[k - 1] <= 2ll * a)
    {
        for(int i = 1 ; i < k ; i++)
            ans.push_back(i) ;
        ans.push_back(r) ;
        answer(ans) ;
    }
    l = 0, r = n - k + 2 ;
    vector<pair<ll, int>> w, ls ;
    while(l + 1 < r)
    {
        w.clear() ;
        ll mid = (l + r) >> 1ll, sum = 0 ;
        for(int i = mid ; i < mid + k ; i++)
        {
            ll num = x[i] ;
            if(!num)
            {
                num = skim(i) ;
                x[i] = num ;
            }
            sum += num ;
            w.push_back({num, i}) ;
        }
        if(sum > 2ll * a)r = mid ;
        else
        {
            ls = w ;
            ans.clear() ;
            for(auto i : w)
                ans.push_back(i.se) ;
            if(sum >= a)answer(ans) ;
            l = mid ;
        }
    }
    impossible() ;
}
//signed main()
//{
//    int n, k, a, s ;
//    cin >> n >> k >> a >> s ;
//    solve(n, k, a, s) ;
//    return 0 ;
//}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 0 ms 208 KB Output is correct
6 Correct 0 ms 208 KB Output is correct
7 Correct 1 ms 208 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Correct 1 ms 208 KB Output is correct
5 Correct 0 ms 208 KB Output is correct
6 Correct 0 ms 208 KB Output is correct
7 Correct 1 ms 220 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
9 Correct 1 ms 636 KB Output is correct
10 Correct 1 ms 592 KB Output is correct
11 Correct 1 ms 592 KB Output is correct
12 Correct 2 ms 592 KB Output is correct
13 Correct 0 ms 592 KB Output is correct
14 Correct 1 ms 592 KB Output is correct
15 Correct 1 ms 592 KB Output is correct
16 Correct 1 ms 592 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1744 KB Output is correct
2 Correct 1 ms 1744 KB Output is correct
3 Correct 1 ms 1744 KB Output is correct
4 Correct 1 ms 1744 KB Output is correct
5 Correct 1 ms 1744 KB Output is correct
6 Correct 1 ms 1744 KB Output is correct
7 Correct 1 ms 1744 KB Output is correct
8 Correct 2 ms 1744 KB Output is correct
9 Correct 1 ms 1828 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1744 KB Output is correct
2 Correct 1 ms 1744 KB Output is correct
3 Correct 1 ms 1744 KB Output is correct
4 Correct 1 ms 1744 KB Output is correct
5 Correct 1 ms 1744 KB Output is correct
6 Correct 1 ms 1744 KB Output is correct
7 Correct 1 ms 1744 KB Output is correct
8 Correct 2 ms 1744 KB Output is correct
9 Correct 1 ms 1828 KB Output is correct
10 Correct 1 ms 1744 KB Output is correct
11 Correct 1 ms 1816 KB Output is correct
12 Correct 1 ms 1828 KB Output is correct
13 Correct 1 ms 1744 KB Output is correct
14 Correct 1 ms 1828 KB Output is correct
15 Correct 1 ms 1744 KB Output is correct
16 Correct 1 ms 1828 KB Output is correct
17 Correct 2 ms 1744 KB Output is correct
18 Correct 1 ms 1744 KB Output is correct
19 Correct 1 ms 1828 KB Output is correct
20 Correct 2 ms 1832 KB Output is correct
21 Correct 1 ms 1820 KB Output is correct
22 Correct 1 ms 1820 KB Output is correct
23 Correct 1 ms 1824 KB Output is correct
24 Correct 1 ms 1824 KB Output is correct
25 Correct 1 ms 1744 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1744 KB Output is correct
2 Correct 1 ms 1744 KB Output is correct
3 Correct 1 ms 1744 KB Output is correct
4 Correct 1 ms 1744 KB Output is correct
5 Correct 1 ms 1744 KB Output is correct
6 Correct 1 ms 1744 KB Output is correct
7 Correct 1 ms 1744 KB Output is correct
8 Correct 2 ms 1744 KB Output is correct
9 Correct 1 ms 1828 KB Output is correct
10 Correct 1 ms 1744 KB Output is correct
11 Correct 1 ms 1816 KB Output is correct
12 Correct 1 ms 1828 KB Output is correct
13 Correct 1 ms 1744 KB Output is correct
14 Correct 1 ms 1828 KB Output is correct
15 Correct 1 ms 1744 KB Output is correct
16 Correct 1 ms 1828 KB Output is correct
17 Correct 2 ms 1744 KB Output is correct
18 Correct 1 ms 1744 KB Output is correct
19 Correct 1 ms 1828 KB Output is correct
20 Correct 2 ms 1832 KB Output is correct
21 Correct 1 ms 1820 KB Output is correct
22 Correct 1 ms 1820 KB Output is correct
23 Correct 1 ms 1824 KB Output is correct
24 Correct 1 ms 1824 KB Output is correct
25 Correct 1 ms 1744 KB Output is correct
26 Correct 2 ms 1828 KB Output is correct
27 Correct 1 ms 1744 KB Output is correct
28 Correct 1 ms 1744 KB Output is correct
29 Correct 1 ms 1820 KB Output is correct
30 Correct 1 ms 1828 KB Output is correct
31 Correct 1 ms 1744 KB Output is correct
32 Correct 1 ms 1744 KB Output is correct
33 Correct 2 ms 1812 KB Output is correct
34 Correct 1 ms 1808 KB Output is correct
35 Correct 1 ms 1744 KB Output is correct
36 Correct 1 ms 1824 KB Output is correct
37 Correct 1 ms 1828 KB Output is correct
38 Correct 1 ms 1744 KB Output is correct
39 Correct 1 ms 1744 KB Output is correct
40 Correct 1 ms 1744 KB Output is correct
41 Correct 1 ms 1744 KB Output is correct
42 Correct 1 ms 1824 KB Output is correct
43 Correct 1 ms 1832 KB Output is correct
44 Correct 2 ms 1836 KB Output is correct
45 Correct 1 ms 1744 KB Output is correct
46 Correct 1 ms 1828 KB Output is correct
47 Correct 1 ms 1744 KB Output is correct
48 Correct 1 ms 1824 KB Output is correct
49 Correct 1 ms 1744 KB Output is correct
50 Correct 1 ms 1744 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1744 KB Output is correct
2 Correct 1 ms 1744 KB Output is correct
3 Correct 1 ms 1744 KB Output is correct
4 Correct 1 ms 1744 KB Output is correct
5 Correct 1 ms 1744 KB Output is correct
6 Correct 1 ms 1744 KB Output is correct
7 Correct 1 ms 1744 KB Output is correct
8 Correct 2 ms 1744 KB Output is correct
9 Correct 1 ms 1828 KB Output is correct
10 Correct 1 ms 1744 KB Output is correct
11 Correct 1 ms 1816 KB Output is correct
12 Correct 1 ms 1828 KB Output is correct
13 Correct 1 ms 1744 KB Output is correct
14 Correct 1 ms 1828 KB Output is correct
15 Correct 1 ms 1744 KB Output is correct
16 Correct 1 ms 1828 KB Output is correct
17 Correct 2 ms 1744 KB Output is correct
18 Correct 1 ms 1744 KB Output is correct
19 Correct 1 ms 1828 KB Output is correct
20 Correct 2 ms 1832 KB Output is correct
21 Correct 1 ms 1820 KB Output is correct
22 Correct 1 ms 1820 KB Output is correct
23 Correct 1 ms 1824 KB Output is correct
24 Correct 1 ms 1824 KB Output is correct
25 Correct 1 ms 1744 KB Output is correct
26 Correct 1 ms 1824 KB Output is correct
27 Correct 1 ms 1744 KB Output is correct
28 Correct 1 ms 1736 KB Output is correct
29 Correct 1 ms 1828 KB Output is correct
30 Correct 1 ms 1744 KB Output is correct
31 Correct 1 ms 1824 KB Output is correct
32 Correct 1 ms 1744 KB Output is correct
33 Correct 2 ms 1744 KB Output is correct
34 Correct 1 ms 1828 KB Output is correct
35 Correct 1 ms 1820 KB Output is correct
36 Correct 1 ms 1832 KB Output is correct
37 Correct 1 ms 1812 KB Output is correct
38 Correct 1 ms 1820 KB Output is correct
39 Correct 1 ms 1744 KB Output is correct
40 Correct 1 ms 1744 KB Output is correct
41 Correct 1 ms 1744 KB Output is correct
42 Correct 1 ms 1824 KB Output is correct
43 Correct 1 ms 1824 KB Output is correct
44 Correct 1 ms 1828 KB Output is correct
45 Correct 1 ms 1744 KB Output is correct
46 Runtime error 1 ms 1744 KB Execution killed with signal 13
47 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 1744 KB Output is correct
2 Correct 1 ms 1744 KB Output is correct
3 Correct 1 ms 1744 KB Output is correct
4 Correct 1 ms 1744 KB Output is correct
5 Correct 1 ms 1744 KB Output is correct
6 Correct 1 ms 1744 KB Output is correct
7 Correct 1 ms 1744 KB Output is correct
8 Correct 2 ms 1744 KB Output is correct
9 Correct 1 ms 1828 KB Output is correct
10 Correct 1 ms 1744 KB Output is correct
11 Correct 1 ms 1816 KB Output is correct
12 Correct 1 ms 1828 KB Output is correct
13 Correct 1 ms 1744 KB Output is correct
14 Correct 1 ms 1828 KB Output is correct
15 Correct 1 ms 1744 KB Output is correct
16 Correct 1 ms 1828 KB Output is correct
17 Correct 2 ms 1744 KB Output is correct
18 Correct 1 ms 1744 KB Output is correct
19 Correct 1 ms 1828 KB Output is correct
20 Correct 2 ms 1832 KB Output is correct
21 Correct 1 ms 1820 KB Output is correct
22 Correct 1 ms 1820 KB Output is correct
23 Correct 1 ms 1824 KB Output is correct
24 Correct 1 ms 1824 KB Output is correct
25 Correct 1 ms 1744 KB Output is correct
26 Correct 2 ms 1828 KB Output is correct
27 Correct 1 ms 1744 KB Output is correct
28 Correct 1 ms 1744 KB Output is correct
29 Correct 1 ms 1820 KB Output is correct
30 Correct 1 ms 1828 KB Output is correct
31 Correct 1 ms 1744 KB Output is correct
32 Correct 1 ms 1744 KB Output is correct
33 Correct 2 ms 1812 KB Output is correct
34 Correct 1 ms 1808 KB Output is correct
35 Correct 1 ms 1744 KB Output is correct
36 Correct 1 ms 1824 KB Output is correct
37 Correct 1 ms 1828 KB Output is correct
38 Correct 1 ms 1744 KB Output is correct
39 Correct 1 ms 1744 KB Output is correct
40 Correct 1 ms 1744 KB Output is correct
41 Correct 1 ms 1744 KB Output is correct
42 Correct 1 ms 1824 KB Output is correct
43 Correct 1 ms 1832 KB Output is correct
44 Correct 2 ms 1836 KB Output is correct
45 Correct 1 ms 1744 KB Output is correct
46 Correct 1 ms 1828 KB Output is correct
47 Correct 1 ms 1744 KB Output is correct
48 Correct 1 ms 1824 KB Output is correct
49 Correct 1 ms 1744 KB Output is correct
50 Correct 1 ms 1744 KB Output is correct
51 Correct 1 ms 1824 KB Output is correct
52 Correct 1 ms 1744 KB Output is correct
53 Correct 1 ms 1736 KB Output is correct
54 Correct 1 ms 1828 KB Output is correct
55 Correct 1 ms 1744 KB Output is correct
56 Correct 1 ms 1824 KB Output is correct
57 Correct 1 ms 1744 KB Output is correct
58 Correct 2 ms 1744 KB Output is correct
59 Correct 1 ms 1828 KB Output is correct
60 Correct 1 ms 1820 KB Output is correct
61 Correct 1 ms 1832 KB Output is correct
62 Correct 1 ms 1812 KB Output is correct
63 Correct 1 ms 1820 KB Output is correct
64 Correct 1 ms 1744 KB Output is correct
65 Correct 1 ms 1744 KB Output is correct
66 Correct 1 ms 1744 KB Output is correct
67 Correct 1 ms 1824 KB Output is correct
68 Correct 1 ms 1824 KB Output is correct
69 Correct 1 ms 1828 KB Output is correct
70 Correct 1 ms 1744 KB Output is correct
71 Runtime error 1 ms 1744 KB Execution killed with signal 13
72 Halted 0 ms 0 KB -