Submission #113128

#TimeUsernameProblemLanguageResultExecution timeMemory
113128_demon_Jakarta Skyscrapers (APIO15_skyscraper)C++14
0 / 100
26 ms32256 KiB
   #include <bits/stdc++.h>
    using namespace std;
    long long n,m;
    long long a[2009];
    long long p[2009];
    long long done[2009][2009];
    long long dp[2009][2009];
    vector<long long>v[10009];
    long long inf=1000000000000009ll;
    long long bt(long long id,long long dog){
            if(id<0 || id>=n)return inf;
            //if(done[id][dog]==1)return inf;
            //done[id][dog]=1;
            if(id==a[1])return 0;
            long long &ret=dp[id][dog];
            if(ret!=-1)return ret;
            if(done[id][dog]==1)return inf;
            done[id][dog]=1;
            ret=min(bt(id-p[dog],dog)+1,bt(id+p[dog],dog)+1);
            for(int i=0;i<v[id].size();i++){
                    long long D=v[id][i];
                    ret=min(ret,bt(id,D));
            }
            return ret;
    }
    int main(){
            memset(dp,-1,sizeof(dp));
            cin>>n>>m;
            for(int i=0;i<m;i++){
                    cin>>a[i]>>p[i];
                    v[a[i]].push_back(i);
            }
            long long x=bt(a[0],0);
            if(x!=inf) cout<<x<<endl;
            else cout<<-1<<endl;
    }

Compilation message (stderr)

skyscraper.cpp: In function 'long long int bt(long long int, long long int)':
skyscraper.cpp:20:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(int i=0;i<v[id].size();i++){
                         ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...