Submission #46111502
Source Code Expand
#include<bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)
using ll=long long;
/////////////////////////////////////////////////////////////////////////
// chmax, chmin
/////////////////////////////////////////////////////////////////////////
template<class T>bool chmax(T &a,const T &b){if(a<b){a=b;return true;}return false;}
template<class T>bool chmin(T &a,const T &b){if(b<a){a=b;return true;}return false;}
/////////////////////////////////////////////////////////////////////////
// constants
/////////////////////////////////////////////////////////////////////////
int dx[]={1,0,-1,0},dy[]={0,1,0,-1};
/////////////////////////////////////////////////////////////////////////
// I/O
/////////////////////////////////////////////////////////////////////////
struct IOSetup{
IOSetup(){
cin.tie(0);
ios::sync_with_stdio(0);
cout<<fixed<<setprecision(12);
}
} iosetup;
/////////////////////////////////////////////////////////////////////////
// vector
/////////////////////////////////////////////////////////////////////////
template<typename T>
ostream &operator<<(ostream &os,const vector<T>&v){
for(int i=0;i<(int)v.size();i++) os<<v[i]<<(i+1==(int)v.size()?"":" ");
return os;
}
template<typename T>
istream &operator>>(istream &is,vector<T>&v){
for(T &x:v)is>>x;
return is;
}
/////////////////////////////////////////////////////////////////////////
// debug
/////////////////////////////////////////////////////////////////////////
namespace myDebug
{
bool DEBUG_FLAG = true;
template<class Last>
void DEBUG(Last &&last)
{
if (DEBUG_FLAG)
cerr << last << endl;
}
template <class Head, class... Tail>
void DEBUG(Head &&head, Tail&&... tail)
{
if (DEBUG_FLAG)
cerr << head << ", ";
DEBUG(forward<Tail>(tail)...);
}
}
using myDebug::DEBUG;
/////////////////////////////////////////////////////////////////////////
// Libraries from https://github.com/mugen1337/procon
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
// solve
/////////////////////////////////////////////////////////////////////////
int main()
{
int N, K, P; cin >> N >> K >> P;
vector<ll> C(N);
vector<vector<ll>> A(N, vector<ll>(5, P));
rep(i, N)
{
cin >> C[i];
rep(j, K)
cin >> A[i][j];
}
const int M = 7776;
using State = tuple<int, int, int, int, int>;
auto get = [](State s)
{
int a, b, c, d, e;
tie(a, b, c, d, e) = s;
int ret = 0;
ret = a;
ret = ret * 6 + b;
ret = ret * 6 + c;
ret = ret * 6 + d;
ret = ret * 6 + e;
return ret;
};
auto teg = [](int idx)
{
int a, b, c, d, e;
e = idx % 6;
idx /= 6;
d = idx % 6;
idx /= 6;
c = idx % 6;
idx /= 6;
b = idx % 6;
idx /= 6;
a = idx % 6;
return make_tuple(a, b, c, d, e);
};
const ll linf = 100000000001000;
vector<vector<ll>> dp(N + 1, vector<ll>(M, linf));
dp[0][0] = 0;
auto add = [&P](int a, int b)
{
return min(a + b, P);
};
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
chmin(dp[i + 1][j], dp[i][j]);
auto [a, b, c, d, e] = teg(j);
a = add(a, A[i][0]);
b = add(b, A[i][1]);
c = add(c, A[i][2]);
d = add(d, A[i][3]);
e = add(e, A[i][4]);
auto idx = get(make_tuple(a, b, c, d, e));
chmin(dp[i + 1][idx], dp[i][j] + C[i]);
}
}
int ok = get(make_tuple(P, P, P, P, P));
cout << (dp[N][ok] >= linf ? -1ll : dp[N][ok]) << endl;
return 0;
}
Submission Info
| Submission Time |
|
| Task |
E - Product Development |
| User |
mugen1337 |
| Language |
C++ 20 (gcc 12.2) |
| Score |
475 |
| Code Size |
3701 Byte |
| Status |
AC |
| Exec Time |
8 ms |
| Memory |
9544 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
475 / 475 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
example_00.txt, example_01.txt |
| All |
example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt |
| Case Name |
Status |
Exec Time |
Memory |
| example_00.txt |
AC |
1 ms |
3612 KiB |
| example_01.txt |
AC |
1 ms |
3772 KiB |
| test_00.txt |
AC |
3 ms |
5380 KiB |
| test_01.txt |
AC |
3 ms |
5720 KiB |
| test_02.txt |
AC |
6 ms |
8048 KiB |
| test_03.txt |
AC |
7 ms |
8916 KiB |
| test_04.txt |
AC |
1 ms |
3672 KiB |
| test_05.txt |
AC |
2 ms |
4960 KiB |
| test_06.txt |
AC |
2 ms |
4076 KiB |
| test_07.txt |
AC |
4 ms |
6192 KiB |
| test_08.txt |
AC |
2 ms |
4716 KiB |
| test_09.txt |
AC |
2 ms |
4632 KiB |
| test_10.txt |
AC |
4 ms |
6440 KiB |
| test_11.txt |
AC |
6 ms |
8844 KiB |
| test_12.txt |
AC |
6 ms |
7788 KiB |
| test_13.txt |
AC |
5 ms |
6928 KiB |
| test_14.txt |
AC |
1 ms |
3920 KiB |
| test_15.txt |
AC |
4 ms |
6688 KiB |
| test_16.txt |
AC |
6 ms |
7784 KiB |
| test_17.txt |
AC |
1 ms |
3872 KiB |
| test_18.txt |
AC |
5 ms |
6892 KiB |
| test_19.txt |
AC |
3 ms |
5220 KiB |
| test_20.txt |
AC |
7 ms |
8512 KiB |
| test_21.txt |
AC |
1 ms |
3688 KiB |
| test_22.txt |
AC |
1 ms |
3720 KiB |
| test_23.txt |
AC |
6 ms |
7676 KiB |
| test_24.txt |
AC |
2 ms |
4172 KiB |
| test_25.txt |
AC |
2 ms |
4608 KiB |
| test_26.txt |
AC |
5 ms |
6688 KiB |
| test_27.txt |
AC |
3 ms |
5724 KiB |
| test_28.txt |
AC |
4 ms |
6192 KiB |
| test_29.txt |
AC |
6 ms |
7768 KiB |
| test_30.txt |
AC |
8 ms |
9368 KiB |
| test_31.txt |
AC |
7 ms |
9540 KiB |
| test_32.txt |
AC |
7 ms |
9304 KiB |
| test_33.txt |
AC |
7 ms |
9384 KiB |
| test_34.txt |
AC |
7 ms |
9352 KiB |
| test_35.txt |
AC |
8 ms |
9372 KiB |
| test_36.txt |
AC |
7 ms |
9440 KiB |
| test_37.txt |
AC |
8 ms |
9440 KiB |
| test_38.txt |
AC |
8 ms |
9544 KiB |
| test_39.txt |
AC |
8 ms |
9412 KiB |
| test_40.txt |
AC |
7 ms |
9468 KiB |
| test_41.txt |
AC |
8 ms |
9444 KiB |
| test_42.txt |
AC |
8 ms |
9448 KiB |
| test_43.txt |
AC |
8 ms |
9332 KiB |