Submission #1174152
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<(1<<n); ++i){ bitset<32> bs(i); if(t <= bs.count()) continue; vector<int> amount2 = amount; for(int j=0; j<n; ++j){ if(bs[j]) amount2[j] = capacity[j]; } bitset<32> tmp; if(getTankSet(d, amount2, tmp)){ for(int j=0; j<n; ++j){ if(bs[j]){ cout << "fill " << (j + 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 | 7400805 |
Code Size | 4530 Byte |
Status | AC |
Exec Time | 171 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 | 137229 / 417500 | 140250 / 417500 | 147154 / 417500 | 143777 / 417500 | 143937 / 417500 | 150376 / 417500 | 155169 / 417500 | 150171 / 417500 | 147847 / 417500 | 150358 / 417500 | 155888 / 417500 | 146900 / 417500 | 159776 / 417500 | 148921 / 417500 | 154601 / 417500 | 150567 / 417500 | 141516 / 417500 | 143684 / 417500 | 149516 / 417500 | 146903 / 417500 | 149205 / 417500 | 149767 / 417500 | 138844 / 417500 | 154484 / 417500 | 142612 / 417500 | 147975 / 417500 | 146399 / 417500 | 146571 / 417500 | 152975 / 417500 | 152378 / 417500 | 157428 / 417500 | 148242 / 417500 | 148388 / 417500 | 152857 / 417500 | 153311 / 417500 | 160741 / 417500 | 139439 / 417500 | 148004 / 417500 | 142598 / 417500 | 141915 / 417500 | 140801 / 417500 | 142728 / 417500 | 148380 / 417500 | 148670 / 417500 | 152235 / 417500 | 147937 / 417500 | 152622 / 417500 | 143041 / 417500 | 137568 / 417500 | 148150 / 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 | 119 ms | 720 KB |
subtask_01_02.txt | AC | 125 ms | 588 KB |
subtask_01_03.txt | AC | 113 ms | 720 KB |
subtask_01_04.txt | AC | 171 ms | 720 KB |
subtask_01_05.txt | AC | 141 ms | 720 KB |
subtask_01_06.txt | AC | 130 ms | 716 KB |
subtask_01_07.txt | AC | 128 ms | 720 KB |
subtask_01_08.txt | AC | 119 ms | 724 KB |
subtask_01_09.txt | AC | 137 ms | 720 KB |
subtask_01_10.txt | AC | 142 ms | 596 KB |
subtask_01_11.txt | AC | 117 ms | 720 KB |
subtask_01_12.txt | AC | 136 ms | 720 KB |
subtask_01_13.txt | AC | 152 ms | 656 KB |
subtask_01_14.txt | AC | 149 ms | 596 KB |
subtask_01_15.txt | AC | 116 ms | 720 KB |
subtask_01_16.txt | AC | 127 ms | 712 KB |
subtask_01_17.txt | AC | 123 ms | 720 KB |
subtask_01_18.txt | AC | 121 ms | 720 KB |
subtask_01_19.txt | AC | 140 ms | 724 KB |
subtask_01_20.txt | AC | 117 ms | 716 KB |
subtask_01_21.txt | AC | 117 ms | 720 KB |
subtask_01_22.txt | AC | 119 ms | 724 KB |
subtask_01_23.txt | AC | 149 ms | 716 KB |
subtask_01_24.txt | AC | 129 ms | 720 KB |
subtask_01_25.txt | AC | 127 ms | 716 KB |
subtask_01_26.txt | AC | 130 ms | 720 KB |
subtask_01_27.txt | AC | 132 ms | 720 KB |
subtask_01_28.txt | AC | 129 ms | 724 KB |
subtask_01_29.txt | AC | 148 ms | 720 KB |
subtask_01_30.txt | AC | 152 ms | 716 KB |
subtask_01_31.txt | AC | 139 ms | 716 KB |
subtask_01_32.txt | AC | 104 ms | 720 KB |
subtask_01_33.txt | AC | 107 ms | 720 KB |
subtask_01_34.txt | AC | 131 ms | 716 KB |
subtask_01_35.txt | AC | 140 ms | 720 KB |
subtask_01_36.txt | AC | 147 ms | 724 KB |
subtask_01_37.txt | AC | 129 ms | 720 KB |
subtask_01_38.txt | AC | 137 ms | 720 KB |
subtask_01_39.txt | AC | 135 ms | 720 KB |
subtask_01_40.txt | AC | 119 ms | 720 KB |
subtask_01_41.txt | AC | 108 ms | 720 KB |
subtask_01_42.txt | AC | 143 ms | 720 KB |
subtask_01_43.txt | AC | 130 ms | 652 KB |
subtask_01_44.txt | AC | 135 ms | 720 KB |
subtask_01_45.txt | AC | 114 ms | 592 KB |
subtask_01_46.txt | AC | 141 ms | 716 KB |
subtask_01_47.txt | AC | 130 ms | 704 KB |
subtask_01_48.txt | AC | 138 ms | 720 KB |
subtask_01_49.txt | AC | 157 ms | 720 KB |
subtask_01_50.txt | AC | 117 ms | 720 KB |