제출 #975774

#제출 시각아이디문제언어결과실행 시간메모리
975774ALeonidou메기 농장 (IOI22_fish)C++17
6 / 100
74 ms9260 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; #define ll int #define sz(x) (ll)x.size() #define F first #define S second #define endl "\n" #define pb push_back typedef vector <ll> vi; typedef vector <long long> vl; typedef pair <ll,ll> ii; typedef vector <ii> vii; #define dbg(x) cout<<#x<<": "<<x<<endl; #define dbg2(x,y) cout<<#x<<": "<<x<<" "<<#y<<": "<<y<<endl; #define dbg3(x,y,z) cout<<#x<<": "<<x<<" "<<#y<<": "<<y<<" "<<#z<<": "<<z<<endl; void printVct(vi &v){ for(ll i =0; i<sz(v); i++){ cout<<v[i]<<" "; } cout<<endl; } long long getSum(ll l, ll r, const vl &s){ if (l == 0) return s[r]; return s[r] - s[l-1]; } long long max_weights(int N, int M, vi X, vi Y, vi w){ ll n = N, m = M; vl s0(n,0), s1(n,0); for (ll i = 0; i<m; i++){ ll x = X[i], y = Y[i]; if (x == 0){ s0[y] = w[i]; } else{ s1[y] = w[i]; } } for (ll i = 1; i<n; i++){ s0[i] += s0[i-1]; s1[i] += s1[i-1]; } long long ans = 0; if (n >= 3){ //can only build at x = 1 long long preAns = s1.back(); ans = preAns; for (ll i =0; i<n; i++){ long long cur = getSum(0,i,s0) + preAns - getSum(0,i,s1); ans = max(ans, cur); } } else{ for (ll i =0; i<n; i++){ long long cur0 = getSum(0,i,s1), cur1 = getSum(0, i, s0); ans = max(ans, max(cur1, cur0)); } } return ans; } /* 6 4 0 2 5 2 1 4 4 4 1 6 3 3 6 6 0 2 5 1 1 4 0 4 1 0 3 3 1 2 4 1 6 2 2 3 0 1 2 0 0 4 1 1 3 5 4 0 2 5 1 1 2 4 4 1 3 3 3 */
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...