2021 RoboCom 世界机器人开发者大赛-本科组(复赛)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define endl '\n'
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;
void solve()
{
vector<int>a(3),b(3),c(3);
int sum1=0,sum2=0;
for(int i=0;i<3;i++)
{
cin>>a[i];
sum1+=a[i];
}
for(int i=0;i<3;i++)
{
cin>>b[i];
sum2+=b[i];
}
for(int i=0;i<3;i++)
{
c[i]=a[i]-b[i];
}
bool flag=1;
if(sum1!=sum2)flag=0;
int mod=(c[0]%3+3)%3;
for(int i=1;i<3;i++)
{
if((c[i]%3+3)%3!=mod)flag=0;
}
for(int i=0;i<3;i++)
{
if((c[i]%20+20)%20!=0)flag=0;
c[i]/=20;
}
if(!flag)
{
cout<<-1<<endl;
return;
}
int x=min({c[0],c[1],c[2]});
int z=max({c[0],c[1],c[2]});
int y=c[0]+c[1]+c[2]-x-z;
int ans=0;
ans+=(-y);
z+=y*2;
x-=y;
y=0;
ans+=z/3*2;
cout<<ans<<endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t=1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define endl '\n'
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;
void solve()
{
int n,m;
cin>>n>>m;
vector<int>t(n+10),c(n+1);
vector<int>dp(3e4+10,INF);
dp[0]=0;
for(int i=1;i<=n;i++)cin>>t[i];
for(int i=1;i<=n;i++)cin>>c[i];
for(int i=1;i<=n;i++)
{
for(int j=3e4;j>=c[i];j--)
{
dp[j]=min(dp[j],dp[j-c[i]]+t[i]);
}
}
int res=0;
for(int i=0;i<=3e4;i++)
{
if(dp[i]<=m)res=i;
}
cout<<res<<endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t=1;
while(t--)
{
solve();
}
return 0;
}