Submission #972122

#TimeUsernameProblemLanguageResultExecution timeMemory
972122batsukh2006Jakarta Skyscrapers (APIO15_skyscraper)C++17
36 / 100
1091 ms1188 KiB
#include<iostream> #include<stdio.h> #include<math.h> #include<map> #include<string> #include<algorithm> #include<vector> #include<string.h> #include<utility> #include<set> #include<cmath> #include<queue> #include<deque> #include<functional> #include<stack> #include<limits.h> #include<iomanip> #include<unordered_map> #include<numeric> #include<tuple> #include<bitset> using namespace std; #define MOD 1000000007 //#define int long long #define ss second #define ff first #define endl '\n' signed main(){ // freopen("file.in", "r", stdin); // freopen("file.out", "w", stdout); ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m; cin>>n>>m; vector<int> b(m+1),p(m+1); for(int i=1; i<=m; i++) cin>>b[i]>>p[i]; queue<int> q; q.push(2); vector<bool> vis(m+1); vector<int> dp(m+1,1e9); dp[2]=0; vis[2]=1; while(!q.empty()){ vector<int> tmp(m+1,1e9); vector<pair<int,int> > v; int need=q.size(); while(need--){ int c=q.front(); q.pop(); v.push_back({dp[c],c}); q.push(c); } sort(v.begin(),v.end()); for(int i=0; i<v.size(); i++){ for(int j=i-1; j>=0; j--){ if(abs(b[v[i].ss]-b[v[j].ss])%p[v[i].ss]==0){ dp[v[i].ss]=min(dp[v[i].ss],abs(b[v[i].ss]-b[v[j].ss])/p[v[i].ss]+dp[v[j].ss]); } } } while(!q.empty()){ int c=q.front(); q.pop(); for(int i=1; i<=m; i++){ if(abs(b[i]-b[c])%p[i]==0){ tmp[i]=min(tmp[i],abs(b[i]-b[c])/p[i]+dp[c]); } } } for(int i=1; i<=m; i++){ if(tmp[i]<dp[i]){ q.push(i); dp[i]=tmp[i]; } } } if(dp[1]==1e9) cout<<-1; else cout<<dp[1]; return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:55:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |      for(int i=0; i<v.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...