답안 #695271

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
695271 2023-02-04T20:59:59 Z Ahmed_Solyman Jakarta Skyscrapers (APIO15_skyscraper) C++14
0 / 100
1 ms 1236 KB
#include<bits/stdc++.h>
using namespace std;
vector<int>g[30000],b(30000),p(30000);
int main(){
	int n,m;cin>>n>>m;
	for(int i=0;i<m;i++){
		cin>>b[i]>>p[i];
		g[b[i]].push_back(p[i]);
	}
	queue<pair<int,int>>q;
	q.push({0,b[0]});
	vector<int>dist(n+5,1e9);
	dist[b[0]]=0;
	map<pair<int,int>,bool>v;
	while(q.size()){
		pair<int,int>x=q.front();
		q.pop();
		dist[x.second]=min(dist[x.second],x.first);
		for(auto i:g[x.second]){
			int u=x.second+i;
			while(u<n){
				if(!v[{x.second,u}]){
					g[u].push_back(i);
					v[{x.second,u}]=1;
					//cout<<x.second<<" "<<u<<" "<<x.first+1<<endl;
					q.push({x.first+1,u});
				}
				break;
			}
			u=x.second-i;
			while(u>=0){
				if(!v[{x.second,u}]){
					g[u].push_back(i);
					v[{x.second,u}]=1;
					//cout<<x.second<<" "<<u<<" "<<x.first+1<<endl;
					q.push({x.first+1,u});
				}
				break;
			}
		}
	}
	cout<<(dist[b[1]]==1e9?-1:dist[b[1]])<<endl;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1236 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1236 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1236 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1236 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1236 KB Output isn't correct
2 Halted 0 ms 0 KB -