Submission #1174402
Source Code Expand
#include <bits/stdc++.h>
#define rep(i, a, n) for(int i = a; i < n; i++)
#define repb(i, a, b) for(int i = a; i >= b; i--)
#define all(a) a.begin(), a.end()
#define o(a) cout << a << endl
// #define int long long
#define fi first
#define se second
using namespace std;
typedef pair<int, int> P;
int n = 8, d, t;
int c[8], a[8];
const int INF = 1e7;
void InitRandom(){
int now=time(0);
srand(now);
}
int bitnum(int n){
int ret = 0;
while(n > 0){
ret += (n & 1); n >>= 1;
}
return ret;
}
int cnt = -1;
int dp[1024];
int pre[1010];
vector<int> path;
vector<int> sell;
P mov;
void pass(){
// if(rand() % 100 == 1){
// cout << "fill " << rand() % 8 + 1 << endl;
// }
// else{
cout << "pass" << endl;
cnt = -1;
// }
}
void think(){
if(cnt == -1){
int MIN = INF, minMask = -1, minMask2 = -1;
for(int mask = 0; mask < (1 <<8); mask++){
for(int mask2 = 0; mask2 < (1 << 8); mask2++){
int sum = 0;
bool f = true;
rep(i, 0, n){
if(mask & (1 << i) && mask2 & (1 << i)) f = false;
}
if(!f) continue;
rep(i, 0, n){
if(mask & (1 << i)){
sum += c[i];
}
if(mask2 & (1 << i)){
sum += a[i];
}
}
if(sum == d && bitnum(mask) < MIN){
MIN = bitnum(mask);
minMask = mask;
minMask2 = mask2;
}
}
}
sell.clear();
path.clear();
rep(i, 0, n){
rep(j, 0, n){
if(i == j) continue;
if(a[i] == 0 && a[j] == 0) continue;
if(a[i] != 0){
if(a[i] < c[j]) continue;
if(c[j] == d || a[i] - c[j] == d){
mov.fi = i;
mov.se = j;
a[j] = c[j];
a[i] -= c[j];
if(c[j] == d) sell. push_back(j);
else sell. push_back(i);
}
}else{
if(a[j] < c[i]) continue;
if(c[i] == d || a[j] - c[i] == d){
a[i] = c[i];
a[j] -= c[i];
mov.fi = j;
mov.se = i;
if(c[i] == d) sell. push_back(i);
else sell. push_back(j);
}
}
if(sell.size() == 1){
break;
i = n;
}
}
}
if(sell.size() == 1 && t >= 2){
cout << "move " << mov.fi + 1<< " " << mov.se + 1<< endl;
cnt = INF;
return ;
}
sell.clear();
if(MIN == INF){
pass();
return;
}
rep(i, 0, n){
if(minMask & (1 << i)){
path. push_back(i);
}
}
rep(i, 0, n){
if(minMask & (1 << i) || minMask2 & (1 << i)){
sell. push_back(i);
}
}
if(path.size() >= t){
pass();
return;
}
// if(path.size() > 5){
// cout << "pass" << endl;
// cnt = -1;
// return;
// }
cnt = 0;
// rep(i, 0, path.size()){
// cout << path[i] << endl;
// }
}
if(cnt < path.size()){
cout << "fill " << path[cnt] + 1 << endl;
cnt++;
}else{
cout << "sell " << sell.size() << " ";
rep(i, 0, sell.size()){
cout << sell[i] + 1;
if(i != sell.size() - 1) cout << " ";
}
cout << endl;
cnt = -1;
}
}
signed main(){
InitRandom();
rep(it, 0, 1000){
cin >> d >> t;
rep(i, 0, n) cin >> c[i];
rep(i, 0, n) cin >> a[i];
if(d < 30) cout << "pass" << endl;
else think();
}
}
Submission Info
Submission Time |
|
Task |
A - 石油王Xの憂鬱 |
User |
treeone |
Language |
C++14 (GCC 5.4.1) |
Score |
447376 |
Code Size |
4353 Byte |
Status |
AC |
Exec Time |
466 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 |
5585 / 417500 |
13952 / 417500 |
2677 / 417500 |
16727 / 417500 |
27295 / 417500 |
10630 / 417500 |
16677 / 417500 |
9837 / 417500 |
11360 / 417500 |
12835 / 417500 |
19117 / 417500 |
6550 / 417500 |
22702 / 417500 |
18072 / 417500 |
12340 / 417500 |
23264 / 417500 |
3589 / 417500 |
2180 / 417500 |
27731 / 417500 |
3724 / 417500 |
4121 / 417500 |
3506 / 417500 |
961 / 417500 |
10793 / 417500 |
11999 / 417500 |
0 / 417500 |
2056 / 417500 |
0 / 417500 |
11623 / 417500 |
4169 / 417500 |
7187 / 417500 |
8055 / 417500 |
3092 / 417500 |
0 / 417500 |
1369 / 417500 |
6913 / 417500 |
4410 / 417500 |
19800 / 417500 |
12776 / 417500 |
6993 / 417500 |
961 / 417500 |
1089 / 417500 |
6221 / 417500 |
3285 / 417500 |
2344 / 417500 |
6115 / 417500 |
17441 / 417500 |
5010 / 417500 |
7028 / 417500 |
11215 / 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 |
429 ms |
724 KB |
subtask_01_02.txt |
AC |
416 ms |
720 KB |
subtask_01_03.txt |
AC |
460 ms |
720 KB |
subtask_01_04.txt |
AC |
419 ms |
720 KB |
subtask_01_05.txt |
AC |
370 ms |
720 KB |
subtask_01_06.txt |
AC |
417 ms |
692 KB |
subtask_01_07.txt |
AC |
406 ms |
596 KB |
subtask_01_08.txt |
AC |
440 ms |
724 KB |
subtask_01_09.txt |
AC |
401 ms |
592 KB |
subtask_01_10.txt |
AC |
448 ms |
720 KB |
subtask_01_11.txt |
AC |
406 ms |
720 KB |
subtask_01_12.txt |
AC |
428 ms |
720 KB |
subtask_01_13.txt |
AC |
417 ms |
720 KB |
subtask_01_14.txt |
AC |
399 ms |
720 KB |
subtask_01_15.txt |
AC |
414 ms |
720 KB |
subtask_01_16.txt |
AC |
400 ms |
724 KB |
subtask_01_17.txt |
AC |
455 ms |
720 KB |
subtask_01_18.txt |
AC |
466 ms |
720 KB |
subtask_01_19.txt |
AC |
389 ms |
716 KB |
subtask_01_20.txt |
AC |
447 ms |
596 KB |
subtask_01_21.txt |
AC |
430 ms |
592 KB |
subtask_01_22.txt |
AC |
423 ms |
724 KB |
subtask_01_23.txt |
AC |
417 ms |
724 KB |
subtask_01_24.txt |
AC |
412 ms |
720 KB |
subtask_01_25.txt |
AC |
413 ms |
720 KB |
subtask_01_26.txt |
AC |
436 ms |
716 KB |
subtask_01_27.txt |
AC |
422 ms |
720 KB |
subtask_01_28.txt |
AC |
434 ms |
720 KB |
subtask_01_29.txt |
AC |
446 ms |
716 KB |
subtask_01_30.txt |
AC |
443 ms |
724 KB |
subtask_01_31.txt |
AC |
437 ms |
724 KB |
subtask_01_32.txt |
AC |
423 ms |
720 KB |
subtask_01_33.txt |
AC |
444 ms |
720 KB |
subtask_01_34.txt |
AC |
448 ms |
716 KB |
subtask_01_35.txt |
AC |
457 ms |
720 KB |
subtask_01_36.txt |
AC |
447 ms |
720 KB |
subtask_01_37.txt |
AC |
433 ms |
692 KB |
subtask_01_38.txt |
AC |
384 ms |
716 KB |
subtask_01_39.txt |
AC |
375 ms |
720 KB |
subtask_01_40.txt |
AC |
433 ms |
716 KB |
subtask_01_41.txt |
AC |
452 ms |
716 KB |
subtask_01_42.txt |
AC |
451 ms |
720 KB |
subtask_01_43.txt |
AC |
408 ms |
720 KB |
subtask_01_44.txt |
AC |
412 ms |
688 KB |
subtask_01_45.txt |
AC |
412 ms |
720 KB |
subtask_01_46.txt |
AC |
431 ms |
712 KB |
subtask_01_47.txt |
AC |
409 ms |
592 KB |
subtask_01_48.txt |
AC |
462 ms |
720 KB |
subtask_01_49.txt |
AC |
425 ms |
720 KB |
subtask_01_50.txt |
AC |
410 ms |
720 KB |