제출 #294259

#제출 시각아이디문제언어결과실행 시간메모리
294259Muhammetali모임들 (IOI18_meetings)C++11
0 / 100
1413 ms200704 KiB
#include "meetings.h" #include <bits/stdc++.h> #define mp make_pair #define f first #define s second #define sz(x) (int)(x).size() #define rsz resize #define ins insert #define ft front() #define bk back() #define pf push_front #define pb push_back #define eb emplace_back #define lb lower_bound #define ub upper_bound using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pi; typedef pair<ll,ll> pl; typedef vector<int> vi; typedef vector<bool> vb; typedef vector<ll> vl; typedef vector<pi> vpi; typedef vector<pl> vpl; template<class T>bool tmin(T& a,T b){if(a>b){a=b;return 1;}return 0;} template<class T>bool tmax(T& a,T b){if(a<b){a=b;return 1;}return 0;} int tree[5000][5000],n; vl C; void add(int ind,int k,int x) { k+=n; tree[ind][k]+=x; for (k/=2;k>=1;k/=2) tree[ind][k]=tree[ind][2*k]+tree[ind][2*k+1]; } ll sum(int ind,int a, int b) { a+=n;b+=n; ll s=0; while(a<=b) { if (a%2==1)s+=tree[ind][a++]; if (b%2==0)s+=tree[ind][b--]; a/=2;b/=2; } return s; } std::vector<long long> minimum_costs(std::vector<int> H, std::vector<int> L,std::vector<int> R) { n=sz(H); for (int i=0;i<sz(H);i++) { int mx=H[i]; for (int j=i-1;j>=0;j--) { mx=max(mx,H[j]); add(i,j+1,mx); } mx=0; for (int j=i;j<=sz(H);j++) { mx=max(mx,H[j]); add(i,j+1,mx); } } for (int i=0;i<sz(L);i++) { ll res=INT_MAX; for (int j=L[i];j<=R[i];j++) { res=min(res,sum(j,L[i]+1,R[i]+1)); } C.pb(res); } return C; }
#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...