Submission #936873

#TimeUsernameProblemLanguageResultExecution timeMemory
936873william950615Let's Win the Election (JOI22_ho_t3)C++17
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; #define F first #define S second #define mkp make_pair #define PH push #define PB push_back #define REP(i,N) for( int i = 0; i < (N); ++i ) #define FOR(i,a,b) for( int i = (a); i <= (b); ++i ) #define ALL(x) begin(x), end(x) #define MEM(x) memset(x, 0, sizeof(x)) typedef long long ll; typedef pair<int,int> pii; template<typename T> using V=vector<T>; void solve() { int N, K; cin >> N >> K; V<pii> vc(N+1); const int INF = 1e9; FOR(i,1,N) cin >> vc[i].F >> vc[i].S; for( auto &i : vc ) if( i.S == -1 ) i.S = INF; sort( vc.begin()+1, vc.end(), [&]( auto&a, auto&b) { return a.S < b.S; }); double dp[ N+1 ][ K+1 ][ K+1 ]; auto init = [&]() { for( auto &i : dp ) for( auto &j : i ) for( auto &k : j ) k = INF; dp[ 0 ][ 1 ][ 0 ] = 0; }; double ans=INF; for( int p = 1; p <= K; ++p ) { init(); for( int i = 1; i <= N; ++i ) { for( int j = 1; j <= K; ++j ) { for( int k = 1; k <= K; ++k ) { dp[ i ][ j ][ k ] = min({ dp[i-1][j-1][k-1]+(1.0*vc[i].S/(j-1)), dp[i-1][j][k-1] + (1.0*vc[i].F/p), dp[i-1][j][k] }); } } } //fprintf(stderr, "ans:(%.16lf), p(%d)\n", ans, p ); ans = min( dp[N][p][K], ans ); } cout << fixed << setprecision(10); cout << ans << '\n'; } int main() { int T = 1; #ifdef LOCAL freopen( "input.txt", "r", stdin); freopen( "output.txt", "w", stdout ); cin >> T; #else ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); #endif while(T--) solve(); }

Compilation message (stderr)

Main.cpp: In lambda function:
Main.cpp:33:18: sorry, unimplemented: capture of variably-modified type 'double [(N + 1)][(K + 1)][(K + 1)]' that is not an N3639 array of runtime bound
   33 |   for( auto &i : dp ) for( auto &j : i ) for( auto &k : j )
      |                  ^~
Main.cpp:33:18: note: because the array element type 'double [(K + 1)][(K + 1)]' has variable size
Main.cpp:35:3: sorry, unimplemented: capture of variably-modified type 'double [(N + 1)][(K + 1)][(K + 1)]' that is not an N3639 array of runtime bound
   35 |   dp[ 0 ][ 1 ][ 0 ] = 0;
      |   ^~
Main.cpp:35:3: note: because the array element type 'double [(K + 1)][(K + 1)]' has variable size