Submission #1176945
Source Code Expand
#include <bits/stdc++.h> #define FOR(i,a,b) for(int i=(a);i<(b);++i) #define rep(i,n) FOR(i,0,n) #define repr(i,n) for(int i=(n)-1;0<=i;--i) #define each(e,v) for(auto&& e:(v)) #define all(v) begin(v),end(v) #define DUMP(x) cerr<<#x<<": "<<(x)<<endl #define DEBUG(x) cerr<<#x<<": "<<(x)<<" (L"<<__LINE__<<")"<<endl using namespace std; using vint = vector<int>; using vdouble = vector<double>; using vstring = vector<string>; using ll = long long; template <class T> void chmin(T& a, const T& b) { a = min(a, b); } template <class T> void chmax(T& a, const T& b) { a = max(a, b); } int C[8], A[8]; int sellPattern; bool canSell(int D) { rep(i, 1<<8) { int sum = 0; rep(j, 8) { if(i & (1 << j)) { sum += A[j]; } } if(sum == D) { sellPattern = i; return true; } } return false; } int fillIndex; bool canFill() { int minDiff = 11; bool ans = false; rep(i, 8) { int diff = C[i] - A[i]; if(diff == 0) return; if(diff < minDiff) { ans = true; minDiff = diff; fillIndex = i; } } return ans; } int main() { rep(tm, 1000) { int D, T; cin >> D >> T; rep(i, 8) cin >> C[i]; rep(i, 8) cin >> A[i]; if(accumulate(all(C), 0) < 50) { auto small = min_element(all(C)); cout << "change " << (small - begin(C) + 1) << endl; } else if(30 < D && canSell(D)) { cout << "sell " << (__builtin_popcount(sellPattern)); rep(i, 8) { if(sellPattern & (1 << i)) cout << " " << (i+1); } cout << endl; } else if(canFill()) { cout << "fill " << (fillIndex + 1) << endl; } else { cout << "pass" << endl; } } return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - 石油王Xの憂鬱 |
User | zenito9970 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1960 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘bool canFill()’: ./Main.cpp:42:23: error: return-statement with no value, in function returning ‘bool’ [-fpermissive] if(diff == 0) return; ^