Submission #1174078
Source Code Expand
#define _USE_MATH_DEFINES #include <cstdio> #include <iostream> #include <sstream> #include <fstream> #include <iomanip> #include <algorithm> #include <cmath> #include <complex> #include <string> #include <vector> #include <list> #include <queue> #include <stack> #include <set> #include <map> #include <bitset> #include <numeric> #include <limits> #include <climits> #include <cfloat> #include <functional> #include <iterator> using namespace std; #ifdef _WIN32 #include <Windows.h> #else #include <sys/time.h> #endif class TicToc { private: double getCurrTime(){ #ifdef _WIN32 return GetTickCount() * 1e-3; #else struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec + tv.tv_usec * 1e-6; #endif } double startTime; public: void tic(){ startTime = getCurrTime(); } double toc(){ return getCurrTime() - startTime; } }; unsigned xor128(){ static unsigned x=123456789,y=362436069,z=521288629,w=88675123; unsigned t; t=(x^(x<<11));x=y;y=z;z=w; return( w=(w^(w>>19))^(t^(t>>8)) ); } bool getTankSet(int d, const vector<int>& amount, bitset<32>& ans) { int n = amount.size(); for(int i=0; i<(1<<n); ++i){ bitset<32> bs(i); int sum = 0; for(int j=0; j<n; ++j){ if(bs[j]){ if(amount[j] == 0){ sum = 0; break; } sum += amount[j]; } } if(sum == d){ ans = bs; return true; } } return false; } void solve(int d, int t, const vector<int>& capacity, const vector<int>& amount) { int n = capacity.size(); const int dMin = 30; const int capacityMin = 4; if(dMin <= d){ bitset<32> bs; if(getTankSet(d, amount, bs)){ cout << "sell " << bs.count(); for(int i=0; i<n; ++i){ if(bs[i]) cout << ' ' << (i + 1); } cout << endl; return; } if(t > 1){ for(int i=0; i<n; ++i){ vector<int> amount2 = amount; amount2[i] = capacity[i]; bitset<32> bs; if(getTankSet(d, amount2, bs)){ cout << "fill " << (i + 1) << endl; return; } } for(int i=0; i<n; ++i){ for(int j=0; j<n; ++j){ if(i == j) continue; vector<int> amount2 = amount; int move = min(amount2[i], capacity[j] - amount2[j]); amount2[i] -= move; amount2[j] += move; bitset<32> bs; if(getTankSet(d, amount2, bs)){ cout << "move " << (i + 1) << ' ' << (j + 1) << endl; return; } } } } } int index = -1; int maxIncrement = 0; for(int i=0; i<n; ++i){ if(capacityMin <= capacity[i]){ int increment = capacity[i] - amount[i]; if(maxIncrement < increment){ maxIncrement = increment; index = i; } } } if(index != -1){ cout << "fill " << (index + 1) << endl; return; } index = min_element(capacity.begin(), capacity.end()) - capacity.begin(); if(capacity[index] < capacityMin){ cout << "change " << (index + 1) << endl; return; } cout << "pass" << endl; } int main() { const int n = 8; const int maxTurn = 1000; for(int turn=0; turn<maxTurn; ++turn){ int d, t; cin >> d >> t; vector<int> capacity(n), amount(n); for(int i=0; i<n; ++i) cin >> capacity[i]; for(int i=0; i<n; ++i) cin >> amount[i]; solve(d, t, capacity, amount); } }
Submission Info
Submission Time | |
---|---|
Task | A - 石油王Xの憂鬱 |
User | mamekin |
Language | C++14 (GCC 5.4.1) |
Score | 7290026 |
Code Size | 4172 Byte |
Status | AC |
Exec Time | 81 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 | 138179 / 417500 | 147186 / 417500 | 157387 / 417500 | 147580 / 417500 | 151422 / 417500 | 154113 / 417500 | 159636 / 417500 | 145136 / 417500 | 146878 / 417500 | 155870 / 417500 | 156473 / 417500 | 134539 / 417500 | 154223 / 417500 | 142546 / 417500 | 144846 / 417500 | 136675 / 417500 | 140124 / 417500 | 146919 / 417500 | 131485 / 417500 | 151323 / 417500 | 146254 / 417500 | 148385 / 417500 | 147833 / 417500 | 140294 / 417500 | 147545 / 417500 | 148680 / 417500 | 137257 / 417500 | 151431 / 417500 | 151228 / 417500 | 148130 / 417500 | 151428 / 417500 | 134963 / 417500 | 143773 / 417500 | 145253 / 417500 | 144262 / 417500 | 145623 / 417500 | 143684 / 417500 | 150156 / 417500 | 131749 / 417500 | 137955 / 417500 | 147401 / 417500 | 143669 / 417500 | 142316 / 417500 | 147215 / 417500 | 141591 / 417500 | 157116 / 417500 | 142182 / 417500 | 138511 / 417500 | 140245 / 417500 | 151357 / 417500 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Status |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 | 64 ms | 720 KB |
subtask_01_02.txt | AC | 79 ms | 716 KB |
subtask_01_03.txt | AC | 67 ms | 716 KB |
subtask_01_04.txt | AC | 81 ms | 716 KB |
subtask_01_05.txt | AC | 72 ms | 720 KB |
subtask_01_06.txt | AC | 66 ms | 724 KB |
subtask_01_07.txt | AC | 70 ms | 720 KB |
subtask_01_08.txt | AC | 72 ms | 704 KB |
subtask_01_09.txt | AC | 72 ms | 720 KB |
subtask_01_10.txt | AC | 71 ms | 720 KB |
subtask_01_11.txt | AC | 73 ms | 720 KB |
subtask_01_12.txt | AC | 72 ms | 720 KB |
subtask_01_13.txt | AC | 75 ms | 720 KB |
subtask_01_14.txt | AC | 73 ms | 724 KB |
subtask_01_15.txt | AC | 77 ms | 716 KB |
subtask_01_16.txt | AC | 64 ms | 716 KB |
subtask_01_17.txt | AC | 73 ms | 720 KB |
subtask_01_18.txt | AC | 66 ms | 712 KB |
subtask_01_19.txt | AC | 70 ms | 716 KB |
subtask_01_20.txt | AC | 67 ms | 720 KB |
subtask_01_21.txt | AC | 69 ms | 724 KB |
subtask_01_22.txt | AC | 68 ms | 716 KB |
subtask_01_23.txt | AC | 76 ms | 724 KB |
subtask_01_24.txt | AC | 69 ms | 720 KB |
subtask_01_25.txt | AC | 68 ms | 660 KB |
subtask_01_26.txt | AC | 72 ms | 716 KB |
subtask_01_27.txt | AC | 68 ms | 724 KB |
subtask_01_28.txt | AC | 74 ms | 720 KB |
subtask_01_29.txt | AC | 77 ms | 716 KB |
subtask_01_30.txt | AC | 74 ms | 720 KB |
subtask_01_31.txt | AC | 75 ms | 724 KB |
subtask_01_32.txt | AC | 69 ms | 712 KB |
subtask_01_33.txt | AC | 75 ms | 720 KB |
subtask_01_34.txt | AC | 66 ms | 724 KB |
subtask_01_35.txt | AC | 75 ms | 720 KB |
subtask_01_36.txt | AC | 70 ms | 592 KB |
subtask_01_37.txt | AC | 65 ms | 720 KB |
subtask_01_38.txt | AC | 74 ms | 720 KB |
subtask_01_39.txt | AC | 66 ms | 720 KB |
subtask_01_40.txt | AC | 76 ms | 716 KB |
subtask_01_41.txt | AC | 69 ms | 720 KB |
subtask_01_42.txt | AC | 70 ms | 724 KB |
subtask_01_43.txt | AC | 79 ms | 720 KB |
subtask_01_44.txt | AC | 76 ms | 720 KB |
subtask_01_45.txt | AC | 69 ms | 724 KB |
subtask_01_46.txt | AC | 71 ms | 704 KB |
subtask_01_47.txt | AC | 65 ms | 720 KB |
subtask_01_48.txt | AC | 70 ms | 720 KB |
subtask_01_49.txt | AC | 68 ms | 596 KB |
subtask_01_50.txt | AC | 71 ms | 724 KB |