Submission #1173210


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){
        if(needT(c, d) > t){
          pass();
          goto end;
        }
      }

      if(sum == d){
        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
Task A - 石油王Xの憂鬱
User yukim
Language C++14 (GCC 5.4.1)
Score 615490
Code Size 2430 Byte
Status TLE
Exec Time 2103 ms
Memory 724 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 0 / 417500 0 / 417500 32709 / 417500 25358 / 417500 0 / 417500 0 / 417500 25972 / 417500 34966 / 417500 28011 / 417500 0 / 417500 0 / 417500 27742 / 417500 0 / 417500 0 / 417500 28645 / 417500 0 / 417500 29083 / 417500 0 / 417500 0 / 417500 34342 / 417500 0 / 417500 0 / 417500 34287 / 417500 0 / 417500 0 / 417500 0 / 417500 27225 / 417500 0 / 417500 0 / 417500 0 / 417500 26368 / 417500 23263 / 417500 0 / 417500 31922 / 417500 28970 / 417500 0 / 417500 0 / 417500 0 / 417500 0 / 417500 0 / 417500 0 / 417500 0 / 417500 28558 / 417500 29456 / 417500 26474 / 417500 32692 / 417500 0 / 417500 0 / 417500 28129 / 417500 31318 / 417500
Status
TLE × 1
TLE × 1
AC × 1
AC × 1
TLE × 1
TLE × 1
AC × 1
AC × 1
AC × 1
TLE × 1
TLE × 1
AC × 1
TLE × 1
TLE × 1
AC × 1
TLE × 1
AC × 1
TLE × 1
TLE × 1
AC × 1
TLE × 1
TLE × 1
AC × 1
TLE × 1
TLE × 1
TLE × 1
AC × 1
TLE × 1
TLE × 1
TLE × 1
AC × 1
AC × 1
TLE × 1
AC × 1
AC × 1
TLE × 1
TLE × 1
TLE × 1
TLE × 1
TLE × 1
TLE × 1
TLE × 1
AC × 1
AC × 1
AC × 1
AC × 1
TLE × 1
TLE × 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 TLE 2103 ms 720 KB
subtask_01_02.txt TLE 2103 ms 716 KB
subtask_01_03.txt AC 49 ms 724 KB
subtask_01_04.txt AC 44 ms 596 KB
subtask_01_05.txt TLE 2103 ms 720 KB
subtask_01_06.txt TLE 2103 ms 720 KB
subtask_01_07.txt AC 42 ms 596 KB
subtask_01_08.txt AC 43 ms 720 KB
subtask_01_09.txt AC 43 ms 720 KB
subtask_01_10.txt TLE 2103 ms 592 KB
subtask_01_11.txt TLE 2103 ms 720 KB
subtask_01_12.txt AC 39 ms 716 KB
subtask_01_13.txt TLE 2103 ms 724 KB
subtask_01_14.txt TLE 2103 ms 724 KB
subtask_01_15.txt AC 41 ms 724 KB
subtask_01_16.txt TLE 2103 ms 720 KB
subtask_01_17.txt AC 39 ms 720 KB
subtask_01_18.txt TLE 2103 ms 720 KB
subtask_01_19.txt TLE 2103 ms 724 KB
subtask_01_20.txt AC 39 ms 720 KB
subtask_01_21.txt TLE 2103 ms 720 KB
subtask_01_22.txt TLE 2103 ms 716 KB
subtask_01_23.txt AC 39 ms 720 KB
subtask_01_24.txt TLE 2103 ms 720 KB
subtask_01_25.txt TLE 2103 ms 724 KB
subtask_01_26.txt TLE 2103 ms 592 KB
subtask_01_27.txt AC 47 ms 720 KB
subtask_01_28.txt TLE 2103 ms 720 KB
subtask_01_29.txt TLE 2103 ms 720 KB
subtask_01_30.txt TLE 2103 ms 716 KB
subtask_01_31.txt AC 53 ms 596 KB
subtask_01_32.txt AC 44 ms 720 KB
subtask_01_33.txt TLE 2103 ms 720 KB
subtask_01_34.txt AC 55 ms 596 KB
subtask_01_35.txt AC 43 ms 720 KB
subtask_01_36.txt TLE 2103 ms 720 KB
subtask_01_37.txt TLE 2103 ms 716 KB
subtask_01_38.txt TLE 2103 ms 720 KB
subtask_01_39.txt TLE 2103 ms 720 KB
subtask_01_40.txt TLE 2103 ms 720 KB
subtask_01_41.txt TLE 2103 ms 724 KB
subtask_01_42.txt TLE 2103 ms 592 KB
subtask_01_43.txt AC 49 ms 724 KB
subtask_01_44.txt AC 42 ms 720 KB
subtask_01_45.txt AC 41 ms 720 KB
subtask_01_46.txt AC 43 ms 596 KB
subtask_01_47.txt TLE 2103 ms 724 KB
subtask_01_48.txt TLE 2103 ms 716 KB
subtask_01_49.txt AC 41 ms 592 KB
subtask_01_50.txt AC 43 ms 716 KB