Submission #880298

#TimeUsernameProblemLanguageResultExecution timeMemory
880298vjudge1Jakarta Skyscrapers (APIO15_skyscraper)C++17
0 / 100
1 ms456 KiB
#include <iostream>
#include <fstream>
#include <iomanip>
#include <vector>
#include <set>
#include <map>
#include <cstring>
#include <string>
#include <cmath>
#include <cassert>
#include <ctime>
#include <algorithm>
#include <sstream>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <cstdlib>
#include <cstdio>
#include <iterator>
#include <functional>
#include <unordered_set>
#include <unordered_map>
#include <stdio.h>
#include <bitset>
#include <cstdint>
#include <cassert>
#include <functional>
#include <complex>
#include <climits>
#include <random>
using namespace std;
  
#define ll long long
#define pb push_back
#define ull unsigned long long
#define F first
#define S second
#define all(v) v.begin(), v.end() 

vector<int> g[105];
bool used[105];
int t = -1, n, m;
int ans = INT_MAX;

void rec(vector<int>& vt, int pred, int v, ll p){
    if(t == v){
        //ans = min(ans, cur);
        int sz = vt.size();
        ans = min(ans, sz);
        return;
    }
    vt.pb(v);
    if(v + p < n){
        if(v + p != pred) rec(vt, v, v + p, p);
    }
    if(v - p >= 0){
        if(v - p != pred) rec(vt, v, v - p, p);
    }
    for(auto s : g[v]){
        if(v + s < n){
            if(v + s != pred) rec(vt, v, v + s, s);
        }
        if(v - s >= 0){
            if(v - s != pred) rec(vt, v, v - s, s);
        }
    }
    vt.pop_back();
}

void solve(){
    cin >> n >> m;
    pair<int, int> s = {-1, -1};
    for(int i = 1; i <= m; i++){
        int x, y;
        cin >> x >> y;
        if(s.F == -1) s = {x, y};
        else if(s.F != -1 && t == -1) t = x;
        else g[x].pb(y);
    }
    vector<int> vt;
    rec(vt, -1, s.F, s.S);
    cout << ans;
}

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL), cout.tie(NULL);
    int xach = 1;   
    //cin >> xach;
    while(xach--) solve();
}
/*
 *
*/
#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...