結果
| 問題 |
No.1473 おでぶなおばけさん
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-10-15 12:08:53 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,053 bytes |
| コンパイル時間 | 4,826 ms |
| コンパイル使用メモリ | 260,804 KB |
| 実行使用メモリ | 16,860 KB |
| 最終ジャッジ日時 | 2025-10-15 12:09:34 |
| 合計ジャッジ時間 | 21,639 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 10 WA * 37 |
ソースコード
#define _USE_MATH_DEFINES
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <string>
#include<math.h>
#include<iomanip>
#include<stdio.h>
#include <stdlib.h>
#include<stdio.h>
#include <queue>
#include<map>
#include <fstream>
#include <sstream>
#include<set>
#include<stack>
#include<time.h>
#include <sys/types.h>
#include <tuple>
#include <numeric>
#include <iterator>
#include <atcoder/all>
#include <bits/stdc++.h>
#define rep(i,n) for (int i = 0; i < (n); ++i)
using namespace atcoder;
using namespace std;
typedef long long int ll;
typedef modint998244353 mint;
ll gcd(ll a, ll b) {
if (a < b)swap(a, b);
if (b == 0)return a;
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
/*
解説動画参考
解説ブログ参考
*/
int INF = 1000111000;
ll f(vector<vector<pair<int, int>>>p, ll s, ll n, ll d) {
vector<ll>r(p.size(), INF);
queue<int>q;
r[s] = 0; q.push(s);
while (q.size()) {
int t = q.front(); q.pop();
for (int i = 0; i < p[t].size(); i++) {
if (r[p[t][i].first] != INF)continue;
if (p[t][i].second < d)continue;
r[p[t][i].first] = r[t] + 1;
q.push(p[t][i].first);
}
}
return r[n];
}
int main()
{
int Q;
Q = 1;
//cin >> Q;
while (Q--) {
ll n, m;
cin >> n >> m;
vector<int>r(n + 3);
vector<vector<pair<int, int>>>p(n+3);
for (int i = 0; i < m; i++) {
int a, b,d;
cin >> a >> b>>d;
a--; b--;
p[a].emplace_back(b, d);
p[b].emplace_back(b, a);
}
ll S = 1, D = 1e9+1;
while (D - S > 1) {
ll mid = (D + S) / 2;
ll t = f(p, 0, n-1, mid);
if (t < INF) {
S = mid;
}
else D = mid;
//cout <<t<<" "<< S<<" "<<D << endl;
}
cout << S << " " << f(p, 0, n-1, S);
}
return 0;
}