제출 #501279

#제출 시각아이디문제언어결과실행 시간메모리
501279ZielSure Bet (CEOI17_sure)C++17
100 / 100
86 ms3628 KiB
/** * LES GREATEABLES BRO TEAM **/ #include <bits/stdc++.h> using namespace std; using ll = long long; #define sz(x) (int)x.size() const bool FLAG = false; void setIO(const string &f = ""); void solve() { int n; cin >> n; vector<double> a(n + 1), b(n + 1); for (int i = 1; i <= n; i++) { cin >> a[i] >> b[i]; } sort(a.begin() + 1, a.end(), greater<double>()); sort(b.begin() + 1, b.end(), greater<double>()); for (int i = 1; i <= n; i++) { a[i] += a[i - 1]; b[i] += b[i - 1]; } double aa = 0, bb = 0; for (int i = 1; i <= n; i++) { int lo = 1, hi = n, idx = 0; while (hi >= lo) { int mid = (lo + hi) / 2; if (a[mid] <= b[i]) lo = mid + 1, idx = mid; else hi = mid - 1; } if (min(a[idx] - i - idx, b[i] - i - idx) > min(aa, bb)) { aa = a[idx] - i - idx; bb = b[i] - i - idx; } } for (int i = 1; i <= n; i++) { int lo = 1, hi = n, idx = 0; while (hi >= lo) { int mid = (lo + hi) / 2; if (b[mid] <= a[i]) lo = mid + 1, idx = mid; else hi = mid - 1; } if (min(a[i] - i - idx, b[idx] - i - idx) > min(aa, bb)) { aa = a[i] - i - idx; bb = b[idx] - i - idx; } } cout << fixed << setprecision(4) << min(aa, bb); } signed main() { setIO(); int tt = 1; if (FLAG) { cin >> tt; } while (tt--) { solve(); } return 0; } void setIO(const string &f) { ios_base::sync_with_stdio(false); cin.tie(nullptr); if (fopen((f + ".in").c_str(), "r")) { freopen((f + ".in").c_str(), "r", stdin); freopen((f + ".out").c_str(), "w", stdout); } }

컴파일 시 표준 에러 (stderr) 메시지

sure.cpp: In function 'void setIO(const string&)':
sure.cpp:78:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   78 |         freopen((f + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sure.cpp:79:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   79 |         freopen((f + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...