제출 #975783

#제출 시각아이디문제언어결과실행 시간메모리
975783ALeonidou메기 농장 (IOI22_fish)C++17
0 / 100
1063 ms7248 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(vl &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]; } vl arr; ll n, m; long long solve(ll i){ //wall already present at position c if (i >= n) return 0; if (i == n-2) return arr.back(); long long ans =0; //i+1 if (i < n-1){ ans = max(ans, solve(i+1)); } //i+2 if (i < n-2){ ans = max(ans, solve(i+2) + arr[i+1]); } //i+3 if (i < n-3){ ans = max(ans, solve(i+3) + arr[i+1] + arr[i+2]); } return ans; } long long max_weights(int N, int M, vi X, vi Y, vi w){ 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]; } */ //create arr arr.assign(n, 0); for (ll i =0; i<m; i++){ ll x = X[i]; arr[x] = w[i]; } // cout<<"arr: "; // printVct(arr); long long ans = 0; ans = solve(0); for (ll i = 1; i<=min(2, n-1); i++){ ans = max(ans, solve(i) + arr[i-1]); } return ans; } /* 7 7 0 0 2 1 0 1 2 0 0 3 0 5 4 0 3 5 0 3 6 0 4 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...