Submission #65469990
Source Code Expand
#ifdef LOCAL
#define _GLIBCXX_DEBUG 1
#endif
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx,popcnt,sse4,abm")
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define pb push_back
#define all(a) (a).begin(), (a).end()
#define rep(X, a, b) for(int X = a; X < b; ++X)
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using pld = pair<ld, ld>;
#define fi first
#define se second
#ifdef LOCAL
#define ZTMYACANESOCUTE // freopen("in.txt", "r", stdin);
#define debug(...) {cerr << #__VA_ARGS__ << " = "; dbg(__VA_ARGS__);}
#else
#define ZTMYACANESOCUTE ios_base::sync_with_stdio(0), cin.tie(0);
#define debug(...) 6;
#endif
void dbg() { cerr << '\n'; }
template<typename T, typename ...U>
void dbg(T t, U ...u) { cerr << t << ' '; dbg(u...); }
pii operator + (const pii &p1, const pii &p2) { return make_pair(p1.fi + p2.fi, p1.se + p2.se); }
pii operator - (const pii &p1, const pii &p2) { return make_pair(p1.fi - p2.fi, p1.se - p2.se); }
pll operator + (const pll &p1, const pll &p2) { return make_pair(p1.fi + p2.fi, p1.se + p2.se); }
pll operator - (const pll &p1, const pll &p2) { return make_pair(p1.fi - p2.fi, p1.se - p2.se); }
template<class T> bool chmin(T &a, T b) { return (b < a && (a = b, true)); }
template<class T> bool chmax(T &a, T b) { return (a < b && (a = b, true)); }
#define lpos pos << 1
#define rpos pos << 1 | 1
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << "," << p.second << ')'; }
template<typename A> ostream& operator << (ostream &os, const vector<A> &p) { for(const auto &a : p) os << a << " "; os << '\n'; return os; }
const int MAXN = 2e5 + 5, MOD = 998244353, IINF = 1e9 + 7, MOD2 = 1000000007;
const double eps = 1e-9;
const ll LINF = 1e18L + 5;
const int B = 320;
// mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
// int get_rand(int l, int r){ return uniform_int_distribution<int>(l, r)(rng); }
ll fpow (ll x, ll exp, ll mod = LLONG_MAX) { if (x == 0) return 0; ll res = 1; while (exp > 0) { if (exp & 1) res = res * x % mod; x = x * x % mod; exp >>= 1; } return res; }
void solve() {
int n, m; cin >> n >> m;
n++;
vector<vector<pll>> adj(n);
rep (i, 0, m) {
int l, r, s; cin >> l >> r >> s;
l--;
adj[l].pb({r, s});
adj[r].pb({l, -s});
}
rep (i, 1, n) adj[i].pb({i - 1, -1});
vector<ll> dis(n, LINF), cnt(n, 0);
auto SPFA = [&](int st, ll d) -> bool {
vector<bool> vis(n, 0);
queue<int> q;
vis[st] = 0;
dis[st] = d;
q.push(st);
while (!q.empty()) {
int u = q.front();
q.pop();
vis[u] = 0;
for (auto [v, w] : adj[u]) {
if (chmin(dis[v], dis[u] + w)) {
cnt[v]++;
if (cnt[v] == n) {
return false;
}
if (!vis[v]) {
vis[v] = 1;
q.push(v);
}
}
}
}
return true;
};
ll l = 0, r = 1e14 + 5;
if (!SPFA(n - 1, r)) {
cout << -1 << '\n';
return;
}
while (r - l > 1) {
ll mid = l + r >> 1;
fill(all(dis), LINF);
fill(all(cnt), 0);
if (SPFA(n - 1, mid) && dis[0] >= 0) r = mid;
else l = mid;
}
cout << r << '\n';
}
int main() {
ZTMYACANESOCUTE;
int T = 1;
// cin >> T;
while (T--) {
solve();
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | G - Specified Range Sums |
| User | Justinshao |
| Language | C++ 20 (gcc 12.2) |
| Score | 600 |
| Code Size | 3738 Byte |
| Status | AC |
| Exec Time | 302 ms |
| Memory | 4080 KiB |
Compile Error
Main.cpp: In function ‘void solve()’:
Main.cpp:99:20: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
99 | ll mid = l + r >> 1;
| ~~^~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt, test_65.txt, test_66.txt, test_67.txt, test_68.txt, test_69.txt, test_70.txt, test_71.txt, test_72.txt, test_73.txt, test_74.txt, test_75.txt, test_76.txt, test_77.txt, test_78.txt, test_79.txt, test_80.txt, test_81.txt, test_82.txt, test_83.txt, test_84.txt, test_85.txt, test_86.txt, test_87.txt, test_88.txt, test_89.txt, test_90.txt, test_91.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 1 ms | 3356 KiB |
| sample_02.txt | AC | 1 ms | 3544 KiB |
| sample_03.txt | AC | 1 ms | 3488 KiB |
| test_01.txt | AC | 1 ms | 3616 KiB |
| test_02.txt | AC | 1 ms | 3388 KiB |
| test_03.txt | AC | 1 ms | 3484 KiB |
| test_04.txt | AC | 3 ms | 3840 KiB |
| test_05.txt | AC | 3 ms | 3776 KiB |
| test_06.txt | AC | 103 ms | 3768 KiB |
| test_07.txt | AC | 103 ms | 3700 KiB |
| test_08.txt | AC | 3 ms | 3772 KiB |
| test_09.txt | AC | 4 ms | 3764 KiB |
| test_10.txt | AC | 4 ms | 3880 KiB |
| test_11.txt | AC | 1 ms | 3552 KiB |
| test_12.txt | AC | 1 ms | 3496 KiB |
| test_13.txt | AC | 2 ms | 3592 KiB |
| test_14.txt | AC | 2 ms | 3580 KiB |
| test_15.txt | AC | 3 ms | 3900 KiB |
| test_16.txt | AC | 3 ms | 3824 KiB |
| test_17.txt | AC | 1 ms | 3488 KiB |
| test_18.txt | AC | 1 ms | 3496 KiB |
| test_19.txt | AC | 3 ms | 3732 KiB |
| test_20.txt | AC | 2 ms | 3848 KiB |
| test_21.txt | AC | 3 ms | 3632 KiB |
| test_22.txt | AC | 3 ms | 3708 KiB |
| test_23.txt | AC | 1 ms | 3416 KiB |
| test_24.txt | AC | 1 ms | 3428 KiB |
| test_25.txt | AC | 2 ms | 3544 KiB |
| test_26.txt | AC | 1 ms | 3524 KiB |
| test_27.txt | AC | 3 ms | 3756 KiB |
| test_28.txt | AC | 3 ms | 3740 KiB |
| test_29.txt | AC | 1 ms | 3416 KiB |
| test_30.txt | AC | 1 ms | 3356 KiB |
| test_31.txt | AC | 6 ms | 3712 KiB |
| test_32.txt | AC | 3 ms | 3608 KiB |
| test_33.txt | AC | 15 ms | 3812 KiB |
| test_34.txt | AC | 11 ms | 3756 KiB |
| test_35.txt | AC | 2 ms | 3684 KiB |
| test_36.txt | AC | 1 ms | 3448 KiB |
| test_37.txt | AC | 2 ms | 3544 KiB |
| test_38.txt | AC | 2 ms | 3484 KiB |
| test_39.txt | AC | 22 ms | 3756 KiB |
| test_40.txt | AC | 3 ms | 3712 KiB |
| test_41.txt | AC | 1 ms | 3488 KiB |
| test_42.txt | AC | 1 ms | 3504 KiB |
| test_43.txt | AC | 10 ms | 3704 KiB |
| test_44.txt | AC | 19 ms | 3592 KiB |
| test_45.txt | AC | 25 ms | 3916 KiB |
| test_46.txt | AC | 109 ms | 4012 KiB |
| test_47.txt | AC | 1 ms | 3612 KiB |
| test_48.txt | AC | 1 ms | 3520 KiB |
| test_49.txt | AC | 4 ms | 3764 KiB |
| test_50.txt | AC | 13 ms | 4080 KiB |
| test_51.txt | AC | 17 ms | 3972 KiB |
| test_52.txt | AC | 12 ms | 3904 KiB |
| test_53.txt | AC | 1 ms | 3568 KiB |
| test_54.txt | AC | 1 ms | 3624 KiB |
| test_55.txt | AC | 3 ms | 3708 KiB |
| test_56.txt | AC | 8 ms | 3832 KiB |
| test_57.txt | AC | 20 ms | 3872 KiB |
| test_58.txt | AC | 19 ms | 3976 KiB |
| test_59.txt | AC | 1 ms | 3500 KiB |
| test_60.txt | AC | 1 ms | 3448 KiB |
| test_61.txt | AC | 72 ms | 4040 KiB |
| test_62.txt | AC | 3 ms | 3724 KiB |
| test_63.txt | AC | 21 ms | 3984 KiB |
| test_64.txt | AC | 15 ms | 3836 KiB |
| test_65.txt | AC | 1 ms | 3476 KiB |
| test_66.txt | AC | 1 ms | 3556 KiB |
| test_67.txt | AC | 2 ms | 3588 KiB |
| test_68.txt | AC | 2 ms | 3788 KiB |
| test_69.txt | AC | 3 ms | 3756 KiB |
| test_70.txt | AC | 2 ms | 3648 KiB |
| test_71.txt | AC | 1 ms | 3420 KiB |
| test_72.txt | AC | 1 ms | 3488 KiB |
| test_73.txt | AC | 1 ms | 3696 KiB |
| test_74.txt | AC | 2 ms | 3628 KiB |
| test_75.txt | AC | 3 ms | 3776 KiB |
| test_76.txt | AC | 3 ms | 3772 KiB |
| test_77.txt | AC | 1 ms | 3424 KiB |
| test_78.txt | AC | 1 ms | 3492 KiB |
| test_79.txt | AC | 3 ms | 3660 KiB |
| test_80.txt | AC | 2 ms | 3492 KiB |
| test_81.txt | AC | 3 ms | 3720 KiB |
| test_82.txt | AC | 3 ms | 3836 KiB |
| test_83.txt | AC | 1 ms | 3492 KiB |
| test_84.txt | AC | 1 ms | 3488 KiB |
| test_85.txt | AC | 3 ms | 3644 KiB |
| test_86.txt | AC | 302 ms | 4000 KiB |
| test_87.txt | AC | 19 ms | 3852 KiB |
| test_88.txt | AC | 5 ms | 3808 KiB |
| test_89.txt | AC | 1 ms | 3552 KiB |
| test_90.txt | AC | 2 ms | 3740 KiB |
| test_91.txt | AC | 67 ms | 3688 KiB |