Submission #972101

# Submission time Handle Problem Language Result Execution time Memory
972101 2024-04-30T05:22:44 Z batsukh2006 Jakarta Skyscrapers (APIO15_skyscraper) C++17
10 / 100
36 ms 600 KB
#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];
    int cnt=n-1;
    queue<int> q;
    q.push(2);
    vector<bool> vis(m+1);
    vector<int> dp(m+1,1e9);
    dp[2]=0;
    vis[2]=1;
    while(cnt>0&&!q.empty()){
    	int need=q.size();
    	queue<int> s;
    	while(need--){
    		int c=q.front();
    		q.pop();
    		s.push(c);
    		q.push(c);
    	}
    	need=q.size();
    	while(need--){
    		int c=q.front();
    		q.pop();
    		int tmp=s.size();
    		while(tmp--){
    			int v=s.front();
    			s.pop();
    			if(abs(b[v]-b[c])%p[v]==0){
    				dp[v]=min(dp[v],abs(b[v]-b[c])/p[v]+dp[c]);
    			}
    			s.push(v);
    		}
    		q.push(c);
    	}
    	need=q.size();
    	while(need--){
    		int c=q.front();
    		q.pop();
    		cnt--;
    		for(int i=1; i<=m; i++){
    			if(abs(b[i]-b[c])%p[i]==0){
    				dp[i]=min(dp[i],abs(b[i]-b[c])/p[i]+dp[c]);
    			}
    		}
    	}
    	for(int i=1; i<=m; i++){
    		if(!vis[i]&&dp[i]!=1e9){
    			vis[i]=1;
				q.push(i);
			}
    	}
    }
    int ans=1e9;
    for(int i=2; i<=m; i++){
    	if(abs(b[1]-b[i])%p[1]==0){
			ans=min(ans,abs(b[1]-b[i])/p[1]+dp[i]);
		}
	}
    if(ans==1e9) cout<<-1;
    else cout<<ans;
    return 0;
}



























# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 2 ms 348 KB Output is correct
12 Incorrect 36 ms 516 KB Output isn't correct
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 2 ms 348 KB Output is correct
12 Incorrect 36 ms 348 KB Output isn't correct
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 600 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 2 ms 348 KB Output is correct
12 Incorrect 35 ms 348 KB Output isn't correct
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 2 ms 348 KB Output is correct
12 Incorrect 36 ms 348 KB Output isn't correct
13 Halted 0 ms 0 KB -