Submission #1174997


Source Code Expand

#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <algorithm>
#include <set>
#include <map>

#define rep(i,n) for(int i=0; i<(n); i++)
#define reps(i,x,n) for(int i=x; i<(n); i++)
#define rrep(i,n) for(int i=(n)-1; i>=0; i--)
#define all(X) (X).begin(),(X).end()
#define X first
#define Y second
#define pb push_back
#define eb emplace_back

using namespace std;
typedef long long int ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

template<class T> bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T> bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; }

template<class A, size_t N, class T> void Fill(A (&a)[N], const T &v){ fill( (T*)a, (T*)(a+N), v ); }

const ll INF = 0x3fffffff;


int D, T;
int C[10], A[10];
bool ok[105];

// 受け入れるか
bool rec(){
	return D > 30 || T <= 3 || ok[D];
}

// 売る
vector<int> sell(){
	vector<int> v;

	int dp[10][105], cur = D;
	Fill(dp, -1);
	dp[0][0] = 0;
	rep(k,8) rrep(i,90) if( dp[k][i] > -1 ){
		dp[k+1][i] = dp[k][i];
		if( A[k] ) dp[k+1][ i+A[k] ] = k;
	}
	int k = 8;
	while( cur ){
		//cerr << cur << " " << dp[k][cur] << "  k=" << k << endl;
		v.push_back( dp[k][cur] + 1 );
		int nexk = dp[k][cur];
		cur -= A[ dp[k][cur] ];
		k = nexk;
	}

	return v;
}

vector<int> sell_(){
	vector<int> v;
	rep(k,1<<8){
		int sum = 0;
		rep(i,8){
			if( k&(1<<i) ){
				if( A[i] == 0 ) break;
				sum += A[i];
			}
		}
		if( sum == D ){
			rep(i,8) if( k&(1<<i) ) v.push_back(i+1);
			return v;
		}
	}

	return v;
}

void solve_(){
	vector<pii> vp;
	rep(i,8) vp.emplace_back( C[i], i+1 );
	sort( all(vp) );
	if( vp[0].X > 3 ) rep(i,8){
		if( A[i] != C[i] ){
			cout << "fill " << i+1 << endl;
			return;
		}
	}
	cout << "change " << vp[0].Y << endl;
}

int main(){
	ios_base::sync_with_stdio(0);

	rep(kase,1000){
		cin >> D >> T;
		rep(i,8) cin >> C[i];
		rep(i,8) cin >> A[i];

		Fill( ok, false );
		ok[0] = true;
		rep(i,8) rrep(j,90) ok[ j + A[i] ] |= ok[j];

		if( !rec() ){
			cout << "pass" << endl;
			continue;
		}

		if( ok[D] ){
			auto v = sell();
			cout << "sell " << v.size();
			for(auto t: v) cout << " " << t;
			cout << endl;
			continue;
		}

		solve_();
	}

	return 0;
}

Submission Info

Submission Time
Task A - 石油王Xの憂鬱
User oyas
Language C++14 (GCC 5.4.1)
Score 6121140
Code Size 2361 Byte
Status AC
Exec Time 44 ms
Memory 724 KB

Judge Result

Set Name test_01 test_02 test_03 test_04 test_05 test_06 test_07 test_08 test_09 test_10 test_11 test_12 test_13 test_14 test_15 test_16 test_17 test_18 test_19 test_20 test_21 test_22 test_23 test_24 test_25 test_26 test_27 test_28 test_29 test_30 test_31 test_32 test_33 test_34 test_35 test_36 test_37 test_38 test_39 test_40 test_41 test_42 test_43 test_44 test_45 test_46 test_47 test_48 test_49 test_50
Score / Max Score 117001 / 417500 125065 / 417500 124824 / 417500 120232 / 417500 121533 / 417500 121224 / 417500 132299 / 417500 122152 / 417500 129486 / 417500 125608 / 417500 136948 / 417500 112743 / 417500 124176 / 417500 136001 / 417500 119597 / 417500 126429 / 417500 123156 / 417500 114407 / 417500 125450 / 417500 120143 / 417500 122647 / 417500 124766 / 417500 113501 / 417500 116165 / 417500 119455 / 417500 122619 / 417500 116863 / 417500 131067 / 417500 120712 / 417500 126717 / 417500 130999 / 417500 125985 / 417500 116402 / 417500 121127 / 417500 121972 / 417500 119662 / 417500 127436 / 417500 117192 / 417500 120164 / 417500 125592 / 417500 129090 / 417500 120820 / 417500 119111 / 417500 123714 / 417500 120390 / 417500 115787 / 417500 122908 / 417500 122256 / 417500 111957 / 417500 115590 / 417500
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
test_01 subtask_01_01.txt
test_02 subtask_01_02.txt
test_03 subtask_01_03.txt
test_04 subtask_01_04.txt
test_05 subtask_01_05.txt
test_06 subtask_01_06.txt
test_07 subtask_01_07.txt
test_08 subtask_01_08.txt
test_09 subtask_01_09.txt
test_10 subtask_01_10.txt
test_11 subtask_01_11.txt
test_12 subtask_01_12.txt
test_13 subtask_01_13.txt
test_14 subtask_01_14.txt
test_15 subtask_01_15.txt
test_16 subtask_01_16.txt
test_17 subtask_01_17.txt
test_18 subtask_01_18.txt
test_19 subtask_01_19.txt
test_20 subtask_01_20.txt
test_21 subtask_01_21.txt
test_22 subtask_01_22.txt
test_23 subtask_01_23.txt
test_24 subtask_01_24.txt
test_25 subtask_01_25.txt
test_26 subtask_01_26.txt
test_27 subtask_01_27.txt
test_28 subtask_01_28.txt
test_29 subtask_01_29.txt
test_30 subtask_01_30.txt
test_31 subtask_01_31.txt
test_32 subtask_01_32.txt
test_33 subtask_01_33.txt
test_34 subtask_01_34.txt
test_35 subtask_01_35.txt
test_36 subtask_01_36.txt
test_37 subtask_01_37.txt
test_38 subtask_01_38.txt
test_39 subtask_01_39.txt
test_40 subtask_01_40.txt
test_41 subtask_01_41.txt
test_42 subtask_01_42.txt
test_43 subtask_01_43.txt
test_44 subtask_01_44.txt
test_45 subtask_01_45.txt
test_46 subtask_01_46.txt
test_47 subtask_01_47.txt
test_48 subtask_01_48.txt
test_49 subtask_01_49.txt
test_50 subtask_01_50.txt
Case Name Status Exec Time Memory
subtask_01_01.txt AC 42 ms 720 KB
subtask_01_02.txt AC 39 ms 720 KB
subtask_01_03.txt AC 41 ms 720 KB
subtask_01_04.txt AC 43 ms 720 KB
subtask_01_05.txt AC 43 ms 720 KB
subtask_01_06.txt AC 42 ms 720 KB
subtask_01_07.txt AC 42 ms 716 KB
subtask_01_08.txt AC 41 ms 720 KB
subtask_01_09.txt AC 43 ms 724 KB
subtask_01_10.txt AC 40 ms 720 KB
subtask_01_11.txt AC 42 ms 636 KB
subtask_01_12.txt AC 44 ms 724 KB
subtask_01_13.txt AC 42 ms 716 KB
subtask_01_14.txt AC 43 ms 720 KB
subtask_01_15.txt AC 41 ms 592 KB
subtask_01_16.txt AC 43 ms 716 KB
subtask_01_17.txt AC 42 ms 720 KB
subtask_01_18.txt AC 39 ms 716 KB
subtask_01_19.txt AC 43 ms 716 KB
subtask_01_20.txt AC 41 ms 672 KB
subtask_01_21.txt AC 41 ms 716 KB
subtask_01_22.txt AC 44 ms 672 KB
subtask_01_23.txt AC 42 ms 716 KB
subtask_01_24.txt AC 44 ms 588 KB
subtask_01_25.txt AC 41 ms 724 KB
subtask_01_26.txt AC 40 ms 720 KB
subtask_01_27.txt AC 41 ms 720 KB
subtask_01_28.txt AC 43 ms 720 KB
subtask_01_29.txt AC 44 ms 720 KB
subtask_01_30.txt AC 42 ms 716 KB
subtask_01_31.txt AC 43 ms 592 KB
subtask_01_32.txt AC 44 ms 724 KB
subtask_01_33.txt AC 42 ms 592 KB
subtask_01_34.txt AC 40 ms 716 KB
subtask_01_35.txt AC 41 ms 720 KB
subtask_01_36.txt AC 42 ms 720 KB
subtask_01_37.txt AC 43 ms 720 KB
subtask_01_38.txt AC 43 ms 720 KB
subtask_01_39.txt AC 44 ms 716 KB
subtask_01_40.txt AC 43 ms 716 KB
subtask_01_41.txt AC 42 ms 720 KB
subtask_01_42.txt AC 39 ms 716 KB
subtask_01_43.txt AC 41 ms 716 KB
subtask_01_44.txt AC 41 ms 724 KB
subtask_01_45.txt AC 40 ms 592 KB
subtask_01_46.txt AC 43 ms 720 KB
subtask_01_47.txt AC 41 ms 716 KB
subtask_01_48.txt AC 42 ms 720 KB
subtask_01_49.txt AC 42 ms 724 KB
subtask_01_50.txt AC 39 ms 720 KB