제출 #569963

#제출 시각아이디문제언어결과실행 시간메모리
569963josanneo22도로 폐쇄 (APIO21_roads)C++17
12 / 100
49 ms4172 KiB
#include<bits/stdc++.h> #include<iostream> #include<cmath> #include<stdlib.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<pair<int, int> > vpii; typedef pair<ll,ll> pll; typedef vector<ll> vll; #define FOR(i,a,b) for (int i = (a); i < (b); ++i) #define F0R(i,a) FOR(i,0,a) #define ROF(i,a,b) for (int i = (b); i >= (a); --i) #define R0F(i,a) ROF(i,0,a) #define trav(a,x) for (auto& a: x) #define mp make_pair #define pb push_back #define rsz resize #define sz(x) int(x.size()) #define all(x) begin(x), end(x) #define f first #define s second #define out(x) cout<<x<<'\n'; #define in(x) cin>>x; #define inarr(a,x,y) for(int i=x;i<y;i++){cin>>a[i];} #define incor(a,x,y) for(int i=x;i<y;i++){cin>>a[i].f>>a[i].s;} int dx[4] = { -1, 0, 1, 0 }; int dy[4] = { 0, 1, 0, -1 }; const int mod = 1e9 + 7; vll minimum_closure_costs(int n, vi u, vi v, vi w) { bool s1 = true; FOR(i,0,n-1) if(u[i] != 0) s1 = false; if(s1) { ll ans = 0; vll val; sort(all(w)); val.pb(0); FOR(i,0,n-1) { ans += w[i]; val.pb(ans); } reverse(all(val)); return val; } vll ans(n); FOR(i,0,n-1) ans[0] += w[i]; vll dp(n - 1); FOR(i,0,n-1) { dp[i] = min((i == 0 ? 0 : dp[i - 1]) + w[i], (i - 2 < 0 ? 0 : dp[i - 2]) + (i - 1 < 0 ? 0 : w[i - 1]));//dp[i-1]+w[i] or dp[i-2]+w[i-1] } ans[1] = dp.back(); return ans; }
#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...