답안 #237370

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
237370 2020-06-06T09:11:31 Z uacoder123 구경하기 (JOI13_watching) C++14
50 / 100
1000 ms 16504 KB
#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define FOR(i,a,b) for (auto i = (a); i <= (b); ++i)
#define NFOR(i,a,b) for(auto i = (a); i >= (b); --i)
#define all(x) (x).begin(), (x).end()
#define sz(x) int(x.size())
#define mp(i,a) make_pair(i,a)
#define pb(a) push_back(a)
#define bit(x,b) (x&(1LL<<b))

typedef long long int lli;
typedef pair <lli,lli> ii;
typedef pair <ii,lli> iii;
typedef vector <lli> vi;
lli s,l;
vi v;
int dp[2001][2001];
int cal(int p,int s1,int w)
{
    if(dp[p][s1]!=-1)
        return(dp[p][s1]);
    if(p==v.size())
        return(0);
    int i1=lower_bound(all(v),w+v[p])-v.begin(),i2=lower_bound(all(v),2*w+v[p])-v.begin();
    if(s1>0)
        dp[p][s1]=min(cal(i1,s1-1,w),1+cal(i2,s1,w));
    else
        dp[p][s1]=1+cal(i2,s1,w);
    return(dp[p][s1]);
}
lli check(lli w)
{
    memset(dp,-1,sizeof(dp));
    return((cal(0,s,w)<=l)?1:0);
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    lli test=1;
    for(;test>0;--test)
    {
        lli n,f,ans=1000000000,le=1,ri=1000000002;
        cin>>n>>s>>l;
        for(lli i=0;i<n;++i)
        {
            cin>>f;
            v.pb(f);
        }
        sort(all(v));
        if(s+l>=n)
        {
            cout<<1<<endl;
            exit(0);
        }
        while(le<=ri)
        {
            lli m=(le+ri)/2;
            if(check(m))
            {
                ans=m;
                ri=m-1;
            }
            else
                le=m+1;
        }
        cout<<ans<<endl;
    }
    return(0);
} 

Compilation message

watching.cpp: In function 'int cal(int, int, int)':
watching.cpp:24:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(p==v.size())
        ~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 68 ms 16000 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 69 ms 16000 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 68 ms 16000 KB Output is correct
8 Correct 68 ms 16000 KB Output is correct
9 Correct 68 ms 16064 KB Output is correct
10 Correct 68 ms 16000 KB Output is correct
11 Correct 72 ms 16000 KB Output is correct
12 Correct 73 ms 16000 KB Output is correct
13 Correct 68 ms 16000 KB Output is correct
14 Correct 65 ms 16000 KB Output is correct
15 Correct 67 ms 16000 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 67 ms 16120 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 5 ms 384 KB Output is correct
7 Correct 69 ms 16000 KB Output is correct
8 Correct 233 ms 16252 KB Output is correct
9 Correct 906 ms 16140 KB Output is correct
10 Execution timed out 1089 ms 16504 KB Time limit exceeded
11 Halted 0 ms 0 KB -