Submission #1173238
Source Code Expand
#include <numeric>
#include <map>
#include <algorithm>
#include <iostream>
#include <queue>
#define REP(i,n) for(int i=0; i<(int)(n); i++)
#include <cstdio>
inline int getInt(){ int s; scanf("%d", &s); return s; }
#include <set>
using namespace std;
void fill(int i){
printf("fill %d\n", i + 1);
fflush(stdout);
}
void change(int i){
printf("change %d\n", i + 1);
fflush(stdout);
}
void sell(int d, const vector<int> &a){
const int n = a.size();
vector<pair<int, int> > v(n);
REP(i,n){
v[i].first = a[i];
v[i].second = i;
}
sort(v.rbegin(), v.rend());
vector<int> res;
int sum = 0;
REP(i,n){
if(v[i].first != 0 && sum + v[i].first <= d){
sum += v[i].first;
res.push_back(v[i].second);
}
}
printf("sell %d", (int)res.size());
REP(i,res.size()) printf(" %d", res[i] + 1);
puts("");
fflush(stdout);
}
void pass(){
printf("pass\n");
fflush(stdout);
}
int needT(vector<int> c, int d){
const int n = c.size();
sort(c.rbegin(), c.rend());
int sum = 0;
REP(i,n){
if(sum + c[i] <= d){
sum += c[i];
if(sum == d) return i + 1;
}
}
return -1;
}
int main(){
const int n = 8;
REP(i,1000){
const int d = getInt();
const int t = getInt();
vector<int> c(n);
vector<int> a(n);
REP(i,n) c[i] = getInt();
REP(i,n) a[i] = getInt();
vector<int> need(n);
map<int, int> cnt;
REP(i,n){
if(c[i] == 1 || c[i] == 2 || c[i] == 4 || c[i] == 8){
if(cnt[c[i]] == 0)
need[i] = 1;
cnt[c[i]]++;
}else if(c[i] == 10){
if(cnt[c[i]] < 4)
need[i] = 1;
cnt[c[i]]++;
}
}
if(accumulate(need.begin(), need.end(), 0) == n){
const int sum = accumulate(a.begin(), a.end(), 0);
if(sum == 0){
const int tt = needT(c, d);
if(tt + 1 > t){
pass();
goto end;
}
if(tt > 3 && d < 30){
pass();
goto end;
}
if(tt > 5 && d < 40){
pass();
goto end;
}
}
if(d == sum){
sell(d, a);
}else{
vector<pair<int, int> > v;
REP(i,n) if(a[i] == 0)
v.push_back(make_pair(c[i], i));
sort(v.rbegin(), v.rend());
REP(i,v.size()) if(sum + v[i].first <= d){
fill(v[i].second);
break;
}
}
}else{
REP(i,n) if(!need[i]){
change(i);
break;
}
}
end:;
}
return 0;
}
Submission Info
Submission Time
2017-03-20 14:33:47+0900
Task
A - 石油王Xの憂鬱
User
yukim
Language
C++14 (GCC 5.4.1)
Score
1609838
Code Size
2628 Byte
Status
AC
Exec Time
48 ms
Memory
1232 KB
Compile Error
./Main.cpp: In function ‘int getInt()’:
./Main.cpp:9:44: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
inline int getInt(){ int s; scanf("%d", &s); return s; }
^
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
33248 / 417500
32267 / 417500
27658 / 417500
33281 / 417500
32696 / 417500
30250 / 417500
27972 / 417500
36302 / 417500
35781 / 417500
38252 / 417500
29059 / 417500
31498 / 417500
36370 / 417500
37377 / 417500
30134 / 417500
31042 / 417500
34003 / 417500
28949 / 417500
32770 / 417500
30836 / 417500
38776 / 417500
25519 / 417500
29963 / 417500
27440 / 417500
37816 / 417500
34551 / 417500
28405 / 417500
34997 / 417500
30621 / 417500
25505 / 417500
33360 / 417500
33462 / 417500
25139 / 417500
36378 / 417500
33618 / 417500
32703 / 417500
36941 / 417500
35063 / 417500
27211 / 417500
31317 / 417500
30722 / 417500
36356 / 417500
29445 / 417500
30610 / 417500
33382 / 417500
32726 / 417500
31985 / 417500
33924 / 417500
33656 / 417500
28502 / 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
48 ms
1232 KB
subtask_01_02.txt
AC
41 ms
720 KB
subtask_01_03.txt
AC
43 ms
592 KB
subtask_01_04.txt
AC
42 ms
720 KB
subtask_01_05.txt
AC
39 ms
720 KB
subtask_01_06.txt
AC
43 ms
720 KB
subtask_01_07.txt
AC
43 ms
720 KB
subtask_01_08.txt
AC
44 ms
724 KB
subtask_01_09.txt
AC
40 ms
720 KB
subtask_01_10.txt
AC
43 ms
720 KB
subtask_01_11.txt
AC
40 ms
720 KB
subtask_01_12.txt
AC
40 ms
716 KB
subtask_01_13.txt
AC
41 ms
716 KB
subtask_01_14.txt
AC
42 ms
592 KB
subtask_01_15.txt
AC
42 ms
716 KB
subtask_01_16.txt
AC
41 ms
720 KB
subtask_01_17.txt
AC
42 ms
596 KB
subtask_01_18.txt
AC
42 ms
716 KB
subtask_01_19.txt
AC
42 ms
592 KB
subtask_01_20.txt
AC
40 ms
716 KB
subtask_01_21.txt
AC
40 ms
720 KB
subtask_01_22.txt
AC
42 ms
660 KB
subtask_01_23.txt
AC
42 ms
724 KB
subtask_01_24.txt
AC
40 ms
720 KB
subtask_01_25.txt
AC
41 ms
720 KB
subtask_01_26.txt
AC
40 ms
720 KB
subtask_01_27.txt
AC
41 ms
724 KB
subtask_01_28.txt
AC
41 ms
716 KB
subtask_01_29.txt
AC
42 ms
592 KB
subtask_01_30.txt
AC
41 ms
720 KB
subtask_01_31.txt
AC
43 ms
716 KB
subtask_01_32.txt
AC
43 ms
720 KB
subtask_01_33.txt
AC
42 ms
724 KB
subtask_01_34.txt
AC
43 ms
720 KB
subtask_01_35.txt
AC
41 ms
724 KB
subtask_01_36.txt
AC
42 ms
720 KB
subtask_01_37.txt
AC
42 ms
696 KB
subtask_01_38.txt
AC
41 ms
720 KB
subtask_01_39.txt
AC
42 ms
720 KB
subtask_01_40.txt
AC
44 ms
720 KB
subtask_01_41.txt
AC
43 ms
712 KB
subtask_01_42.txt
AC
43 ms
716 KB
subtask_01_43.txt
AC
39 ms
724 KB
subtask_01_44.txt
AC
42 ms
720 KB
subtask_01_45.txt
AC
43 ms
720 KB
subtask_01_46.txt
AC
44 ms
720 KB
subtask_01_47.txt
AC
42 ms
720 KB
subtask_01_48.txt
AC
42 ms
724 KB
subtask_01_49.txt
AC
44 ms
720 KB
subtask_01_50.txt
AC
42 ms
724 KB