Submission #1269950

#TimeUsernameProblemLanguageResultExecution timeMemory
1269950FaggiCyberland (APIO23_cyberland)C++20
0 / 100
3094 ms12360 KiB
#include <bits/stdc++.h> #define ll long long #define sz(x) int(x.size()) #define all(x) x.begin(),x.end() #define fr first #define se second #define pb push_back #define mp make_pair using namespace std; const int MAXN=1e5+1; double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) { vector<double>dist(N,0); ll i, j; double act; for(i=0; i<M; i++) dist[min(x[i],y[i])]=c[i]; vector<double>dis(K+1,0); for(i=0; i<H; i++) { vector<double>nd=dis; if(arr[i]==0) { for(j=0; j<=K; j++) nd[j]=0; } else if(arr[i]==2) { for(j=0; j<K; j++) nd[j+1]=min(dis[j]/double(2),nd[j+1]); if(i>0) { double act=dis[0]; for(j=1; j<=K; j++) { for(ll l=0; l<K; l++) { if(l+j>K) break; act=(dis[l]+dist[i-1]*j)/(2*j); nd[l+j]=min(nd[j+l],act); } } } if(i+1<H) { double act=dis[0]; for(j=1; j<=K; j++) { for(ll l=0; l<K; l++) { if(l+j>K) break; act=(dis[l]+dist[i]*j)/(2*j); nd[l+j]=min(nd[j+l],act); } } } } for(j=0; j<=K; j++) nd[j]=nd[j]+dist[i]; dis=nd; } double mi=dis[0]; for(j=1; j<=K; j++) mi=min(mi,dis[j]); return mi; }
#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...