제출 #1172756

#제출 시각아이디문제언어결과실행 시간메모리
1172756uranhishigBikeparking (EGOI24_bikeparking)C++20
49 / 100
1095 ms4936 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define vi vector<int> #define ff first #define ss second #define pb push_back #define all(a) (a).begin(),(a).end() #define rep(i, n) for(int i = 0; i < (n); i++) #define rep1(i, n) for(int i = 1; i <= (n); i++) const int mod = 1e9 + 7; const int mx = 3e5 + 5; signed main() { int n; cin >> n; vector<int> a(n); bool ok = true; int xx; for (int i = 0; i < n; i++) { cin >> a[i]; xx = a[i]; if (i > 0) { if (a[i] != a[0]) ok = false; } } vector<int> b(n); for (int i = 0; i < n; i++) { cin >> b[i]; if (i > 0) { if (b[i] != b[0]) ok = false; if (a[i] != b[i]) ok = false; } } if (ok) { if(n<3) { cout<<"0"; return 0; } cout << (n - 2) * xx; return 0; } int ans = 0; for (int i = n - 2; i >= 0; i--) { for (int j = i + 1; j < n; j++) { int x = min(a[i], b[j]); a[i] -= x; b[j] -= x; ans += x; } } for (int i = 0; i < n; i++ ) { int t = min(a[i], b[i]); a[i] -= t; b[i] -= t; } for (int i = 0; i < n; i++) { if (b[i] > 0) { ans -= b[i]; } } cout << ans << endl; return 0; }
#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...