Submission #1174909

#TimeUsernameProblemLanguageResultExecution timeMemory
1174909CodeLakVNPalembang Bridges (APIO15_bridge)C++20
0 / 100
1 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() - 1; if (numBridge == 2) { FOR(a, 0, n) { FOR(b, 0, n) { ll cur = 0; FOR(i, 0, n) { cur += min(abs(citizens[i].F - citizens[a].F) + abs(citizens[i].S - citizens[a].S), abs(citizens[i].F - citizens[b].F) + abs(citizens[i].S - citizens[b].S)); } minimize(ans, cur); } } } else { FOR(a, 0, n) { ll cur = 0; FOR(i, 0, n) { cur += abs(citizens[i].F - citizens[a].F) + abs(citizens[i].S - citizens[a].F); } minimize(ans, cur); } } cout << ans + sameSide + n + 1 << "\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:64:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   64 |         freopen(task".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
bridge.cpp:65:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   65 |         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...