Submission #112925

#TimeUsernameProblemLanguageResultExecution timeMemory
112925nafis_shifatJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
437 ms262144 KiB
#include<bits/stdc++.h>
#define mx 30009
#define pii pair<int,int>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    int b[m+1],p[m+1];
    int sp[n+1]={};
    vector<pii> edg[mx];
    for(int i=0;i<m;i++)
    {
        cin>>b[i];
        cin>>p[i];
        sp[b[i]]=p[i];
        int k=0;
        
        for(int j=b[i]+p[i];j<n;j+=p[i])
        {
            k++;
            edg[b[i]].push_back({j,k});
        }
        k=0;
        for(int j=b[i]-p[i];j>=0;j-=p[i])
        {
            k++;
            edg[b[i]].push_back({j,k});
        }
        
    }
    
   
    
    
   
    int dist[mx+1];
    for(int i=0;i<=mx;i++)dist[i]=(int)2e9;
    priority_queue<pii,vector<pii>,greater<pii>> pq;

    
    pq.push({0,b[0]});
    dist[b[0]]=0;
    int vis[mx+1]={};
    
    while(!pq.empty())
    {
        int u=pq.top().second;
       
        pq.pop();
        if(u==b[1])
        {
            cout<<dist[u]<<endl;
            return 0;
        }
        if(vis[u])continue;
        vis[u]=1;
        for(int i=0;i<edg[u].size();i++)
        {
            
            if(dist[edg[u][i].first]>dist[u]+edg[u][i].second)
            {
                dist[edg[u][i].first]=dist[u]+edg[u][i].second;
               
                pq.push({dist[edg[u][i].first],edg[u][i].first});
            }
        }
    }
    
    cout<<-1<<endl;
    
    
}

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:58:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<edg[u].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...