답안 #1062396

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1062396 2024-08-17T06:00:29 Z Sir_Ahmed_Imran 커다란 상품 (IOI17_prize) C++17
20 / 100
29 ms 5924 KB
                                    ///~~~LOTA~~~///
#include <bits/stdc++.h>
#include "prize.h"
using namespace std;
#define ll long long
#define ld long double
#define append push_back
#define add insert
#define nl '\n'
#define ff first
#define ss second
#define pii pair<int,int>
#define pll pair<ll,ll>
#define all(x) (x).begin(),(x).end()
#define L0TA ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define terminator main
#define MAXN 200000
vector<int> v[MAXN];
vector<int> get(int x){
    if(v[x].empty())
        v[x]=ask(x);
    return v[x];
}
int find_best(int n){
    int m,o,p,q;
    vector<int> a;
    for(int i=m=0;i<n;i+=256){
        a=get(i);
        m=max(m,a[0]+a[1]);
    }
    p=0;q=n-1;
    while(p<n && q>=0){
        a=get(p);
        if(!a[0] && !a[1])
            return p;
        o=(p+256)/256;
        o*=256;
        if(a[0]+a[1]==m  && get(o)==a) 
            p=o;
        else if(a[0]+a[1]==m){
            for(int i=128;i>0;i/=2){
                if(p+i<n && get(p+i)==a)
                    p+=i;
            }
        }
        p++;
        a=get(q);
        if(!a[0] && !a[1])
            return q;
        o=(q-1)/256;
        o*=256;
        if(a[0]+a[1]==m  && get(o)==a) 
            q=o;
        else if(a[0]+a[1]==m){
            for(int i=128;i>0;i/=2){
                if(q>=i && get(q-i)==a)
                    q-=i;
            }
        }
        q--;
    }
    return -1;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 5208 KB Output is correct
2 Correct 8 ms 4952 KB Output is correct
3 Correct 7 ms 4952 KB Output is correct
4 Correct 3 ms 4952 KB Output is correct
5 Correct 6 ms 4952 KB Output is correct
6 Correct 5 ms 4952 KB Output is correct
7 Correct 8 ms 4952 KB Output is correct
8 Correct 8 ms 5208 KB Output is correct
9 Correct 8 ms 4952 KB Output is correct
10 Correct 5 ms 4952 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 5140 KB Output is correct
2 Correct 8 ms 5208 KB Output is correct
3 Correct 8 ms 5140 KB Output is correct
4 Correct 5 ms 5208 KB Output is correct
5 Correct 8 ms 4952 KB Output is correct
6 Correct 7 ms 4952 KB Output is correct
7 Correct 6 ms 4952 KB Output is correct
8 Correct 9 ms 5160 KB Output is correct
9 Correct 8 ms 5208 KB Output is correct
10 Correct 5 ms 4952 KB Output is correct
11 Correct 9 ms 4952 KB Output is correct
12 Correct 6 ms 5208 KB Output is correct
13 Correct 5 ms 4952 KB Output is correct
14 Correct 3 ms 4952 KB Output is correct
15 Correct 8 ms 4952 KB Output is correct
16 Correct 17 ms 5208 KB Output is correct
17 Correct 5 ms 4952 KB Output is correct
18 Correct 5 ms 4952 KB Output is correct
19 Correct 5 ms 4952 KB Output is correct
20 Correct 9 ms 5144 KB Output is correct
21 Correct 22 ms 5468 KB Output is correct
22 Correct 10 ms 5208 KB Output is correct
23 Correct 6 ms 4952 KB Output is correct
24 Correct 5 ms 4952 KB Output is correct
25 Partially correct 25 ms 5752 KB Partially correct - number of queries: 5093
26 Partially correct 29 ms 5924 KB Partially correct - number of queries: 5174
27 Correct 7 ms 5204 KB Output is correct
28 Correct 6 ms 5160 KB Output is correct
29 Correct 9 ms 5208 KB Output is correct
30 Correct 4 ms 4952 KB Output is correct
31 Correct 5 ms 4952 KB Output is correct
32 Correct 11 ms 5404 KB Output is correct
33 Incorrect 1 ms 4952 KB Integer 256 violates the range [0, 99]
34 Halted 0 ms 0 KB -