Submission #1154027

#TimeUsernameProblemLanguageResultExecution timeMemory
1154027WebblyEvacuation plan (IZhO18_plan)C++20
35 / 100
4051 ms511000 KiB
// Problem: A - Maximum Subset Sum // Contest: Virtual Judge - XOR basis // URL: https://vjudge.net/contest/694928#problem/A // Memory Limit: 64 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Solution // Webbly, 27.01.2023 // // // Arsen ne katai // // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include<bits/stdc++.h> /** #include <algorithm> #include <iostream> #include <vector> #include <queue> #include <cmath> #include <map> #include <set> #include <time.h> */ //#pragma GCC optimize("O3") //#pragma GCC optimize("fast-loops") //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") /** #pragma GCC optimize("-funsafe-loop-optimizations") #pragma GCC optimize("-funroll-loops") #pragma GCC optimize("-fwhole-program") #pragma GCC optimize("Ofast,no-stack-protector") #pragma GCC optimize("-fthread-jumps") #pragma GCC optimize("-falign-functions") #pragma GCC optimize("-falign-jumps") #pragma GCC optimize("-falign-loops") #pragma GCC optimize("-falign-labels") #pragma GCC optimize("-fcaller-saves") #pragma GCC optimize("-fcrossjumping") #pragma GCC optimize("-fcse-follow-jumps") #pragma GCC optimize("-fcse-skip-blocks") #pragma GCC optimize("-fdelete-null-pointer-checks") #pragma GCC optimize("-fdevirtualize") #pragma GCC optimize("-fexpensive-optimizations") #pragma GCC optimize("-fgcse") #pragma GCC optimize("-fgcse-lm") #pragma GCC optimize("-fhoist-adjacent-loads") #pragma GCC optimize("-finline-small-functions") #pragma GCC optimize("-findirect-inlining") #pragma GCC optimize("-fipa-sra") #pragma GCC optimize("-foptimize-sibling-calls") #pragma GCC optimize("-fpartial-inlining") #pragma GCC optimize("-fpeephole2") #pragma GCC optimize("-freorder-blocks") #pragma GCC optimize("-freorder-functions") #pragma GCC optimize("-frerun-cse-after-loop") #pragma GCC optimize("-fsched-interblock") #pragma GCC optimize("-fsched-spec") #pragma GCC optimize("-fschedule-insns") #pragma GCC optimize("-fschedule-insns2") #pragma GCC optimize("-fstrict-aliasing") #pragma GCC optimize("-fstrict-overflow") #pragma GCC optimize("-ftree-switch-conversion") #pragma GCC optimize("-ftree-tail-merge") #pragma GCC optimize("-ftree-pre") #pragma GCC optimize("-ftree-vrp") #pragma GCC target("avx") */ #define ll long long #define ull unsigned long long #define kebzaro ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define pb push_back #define mp make_pair #define all(x) x.begin(),x.end() #define flush cout.flush() using namespace std; const ll mod = (ll)1e9 + 7, mod3 = 998244353, inf = (ll)2e15, P = 31; void judge(string name){ if (name.size()){ freopen((name + ".in").c_str(), "r", stdin); freopen((name + "out").c_str(), "w", stdout); } } ll rnd(){ ll x = rand(); return rand() ^ x; } ll binpow (ll a, ll b){ ll ans = 1; while(b){ if (b & 1){ ans *= a; ans %= mod; } b >>= 1; a *= a; a %= mod; } return ans; } ll gcd(ll a, ll b){ return (b ? gcd(b, a % b) : a); } ll lcm(ll a, ll b){ return a / gcd(a, b) * b; } struct tr{ ll four, seven, inc, dec; }; struct T{ ll l, x, ind; }; ll n, m, k, a[500005], b[500005], d[500005]; vector <pair <ll, ll> > g[100005]; queue <pair <ll, ll> > q; ll used[100005]; void bfs(){ while(!q.empty()){ ll v = q.front().first, cost = q.front().second; q.pop(); if (d[v] < cost) continue; for (auto i : g[v]){ if (d[i.first] > cost + i.second){ d[i.first] = cost + i.second; q.push({i.first, d[i.first]}); } } } } ll naive(ll x, ll y){ queue <pair <ll, ll> > t; ll mx = inf; t.push({x, d[x]}); for (ll i = 1; i <= n; i++){ used[i] = 0; } while(!t.empty()){ ll v = t.front().first, cost = t.front().second; t.pop(); if (used[v] > cost) continue; for (auto i : g[v]){ if (used[i.first] < cost){ used[i.first] = min(d[i.first], cost); t.push({i.first, min(d[i.first], cost)}); } } } return used[y]; } void sarsen(){ cin >> n >> m; for (ll i = 1; i <= n; i++){ d[i] = inf; } for (ll i = 1, x, y, z; i <= m; i++){ cin >> x >> y >> z; g[x].pb({y, z}); g[y].pb({x, z}); } cin >> k; for (ll i = 1, x; i <= k; i++){ cin >> x; q.push({x, 0ll}); d[x] = 0; } bfs(); cin >> k; for (ll i = 1, x, y; i <= k; i++){ cin >> x >> y; if (n <= 15 || k == 1){ cout << naive(x, y) << '\n'; } else{ cout << min(d[x], d[y]) << '\n'; } } } int main(){ kebzaro judge(""); ll TT = 1, tests = 1; //cin >> TT; while(TT--){ //cout << "Case " << tests << ": "; sarsen(); //tests++; } return 0; } /** 1001 1011 0101 */

Compilation message (stderr)

plan.cpp: In function 'void judge(std::string)':
plan.cpp:96:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   96 |                 freopen((name + ".in").c_str(), "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
plan.cpp:97:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   97 |                 freopen((name + "out").c_str(), "w", stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...