Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define T first
- #define A second.first
- #define B second.second
- typedef long long ll;
- typedef pair<int, int> ii;
- const int N = 2e5 + 5e2;
- const ll INF = 10000000000;
- vector<pair<int,ii>> v;
- int n ,k;
- ll calc(int i ,bool canStop ,int Alice ,int Bob){
- if( i == n ){
- if( canStop ) return 0ll;
- return INF;
- }
- if( canStop ) return 0ll;
- ll c1 = calc(i + 1 ,(Alice >= k && Bob >= k) ,Alice ,Bob);
- ll c2 = calc(i + 1 ,(Alice + v[i].A) >= k && (Bob + v[i].B) >= k ,
- Alice + (v[i].A == 1) ,Bob + (v[i].B == 1) )
- + 1ll * v[i].T;
- return min(c1 ,c2);
- }
- int main(){
- scanf("%d%d" ,&n ,&k);
- v.resize(n);
- for(auto&i : v)
- scanf("%d%d%d" ,&i.T ,&i.A ,&i.B);
- ll Ans = calc(0 ,0 ,0 ,0);
- if( Ans == INF ) Ans = -1;
- printf("%I64d\n" ,Ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement