Submission #1174922

#TimeUsernameProblemLanguageResultExecution timeMemory
1174922CodeLakVNPalembang Bridges (APIO15_bridge)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define task "15_bridge" #define FOR(i, a, b) for (int i = (a); i <= (b); i++) #define FOD(i, a, b) for (int i = (a); i >= (b); i--) #define F first #define S second #define ll long long typedef pair<int, int> ii; template<class X, class Y> bool minimize(X &x, Y y) { if (x > y) { x = y; return true; } return false; } const int N = (int)1e5 + 5; int numBridge, numCitizen; vector<ii> citizens; ll sameSide = 0; namespace sub3 { bool valid() { return (numBridge == 2 && numCitizen <= 100) || (numBridge == 1 && numCitizen <= 1000); } void solve() { ll ans = LLONG_MAX; int n = citizens.size(); if (numBridge == 2) { FOR(a, 0, n - 1) { FOR(b, 0, n - 1) { if (a == b) continue; ll curF = 0, curS = 0; FOR(i, 0, n - 1) { curF += min(abs(citizens[i].F - citizens[a].F) + abs(citizens[i].S - citizens[a].F), abs(citizens[i].F - citizens[b].F) + abs(citizens[i].S - citizens[b].F)); curS += min(abs(citizens[i].F - citizens[a].S) + abs(citizens[i].S - citizens[a].S), abs(citizens[i].F - citizens[b].S) + abs(citizens[i].S - citizens[b].S)); } minimize(ans, min(curF, curS)); } } } else { FOR(a, 0, n - 1) { ll curF = 0, curS = 0; FOR(i, 0, n - 1) { curF += abs(citizens[i].F - citizens[a].F) + abs(citizens[i].S - citizens[a].F); curS += abs(citizens[i].F - citizens[a].S) + abs(citizens[i].S - citizens[a].S); } minimize(ans, min(curF, curS)); } } cout << ans + sameSide + n << "\n"; } } int main() { if (fopen(task".inp", "r")) { freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> numBridge >> numCitizen; FOR(i, 1, numCitizen) { char a, b; int x, y; cin >> a >> x >> b >> y; if (a == b) sameSide += 1LL * abs(x - y); else citizens.push_back({x, y}); } if (sub3::valid()) sub3::solve(); return 0; }

Compilation message (stderr)

bridge.cpp: In function 'int main()':
bridge.cpp:67:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   67 |         freopen(task".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
bridge.cpp:68:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   68 |         freopen(task".out", "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...