Submission #21970

#TimeUsernameProblemLanguageResultExecution timeMemory
21970HiasatJakarta Skyscrapers (APIO15_skyscraper)C++14
0 / 100
0 ms1848 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef pair<ll, int> plli; typedef pair<double, double> pdd; typedef pair<string, int> psi; const int MOD = 1e9 + 7; const ll oo = 1e15; typedef long long ll; int n , m; pii d[2010]; bool vis[2010][30010]; int cost[2010][30010]; vector<int> dogs[2010]; int main() { //freopen("input.txt","r",stdin); scanf("%d%d",&n,&m); for (int i = 0; i < m; ++i){ scanf("%d%d",&d[i].first,&d[i].second); dogs[d[i].first].push_back(i); } deque<pii> q; cost[d[0].first][0] = 0; vis[d[0].first][0] = 1; q.push_front(make_pair(d[0].first,0)); while(!q.empty()){ pii src = q.front(); if(src.first == d[1].first){ printf("%d\n", cost[src.first][src.second]); return 0; } q.pop_front(); for (int i = 0; i < dogs[src.first].size(); ++i){ int nw = dogs[src.first][i]; if(vis[src.first][nw]) continue; vis[src.first][nw] = 1; cost[src.first][nw] = cost[src.first][src.second]; q.push_front(make_pair(src.first,nw)); } for(int i = -1 ; i <= 1 ; i+= 2){ int nw = src.first + d[src.second].second * i; if(nw < 0 || nw >= n) continue; if(vis[nw][src.second]) continue; vis[nw][src.second]=1; cost[nw][src.second] = 1 + cost[src.first][src.second]; q.push_back(make_pair(nw,src.second)); } } puts("-1"); return 0; }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:46:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < dogs[src.first].size(); ++i){
                     ^
skyscraper.cpp:30:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d",&n,&m);
                     ^
skyscraper.cpp:32:41: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d",&d[i].first,&d[i].second);
                                         ^
#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...