Paste Search Dynamic
Recent pastes
ans
  1. #include<bits/stdc++.h>
  2. #define subham ios_base::sync_with_stdio(false);
  3. #define raj    cin.tie(NULL);
  4. #define mod 1000000007
  5. #define fr first
  6. #define sec second
  7. #define ll long long
  8. #define PI 3.1415926535
  9. #define pb push_back
  10. #define mpr make_pair
  11. #define all(a) a.begin(),a.end()
  12. #define rall(a) a.rbegin(),a.rend()
  13. using namespace std;
  14.  
  15. ll fac[2000005];
  16. void pre(){ fac[0]=1; fac[1]=1; for(int i=2;i<200005;i++) fac[i]=(i*fac[i-1])%mod;}
  17. ll power(ll a,ll b){ll res=1;while(b){if(b&1) res=(res*a)%mod;a=(a*a)%mod;b=b/2;}return res%mod;}
  18. ll ncr(ll n,ll r){return ((fac[n]*power(fac[r],mod-2))%mod*power(fac[n-r],mod-2))%mod;}
  19. int main()
  20. {
  21.         ll n,k,i;
  22.         cin>>n>>k;
  23.         vector<ll>v1,v2,v3;
  24.         ll ans=0;
  25.         for(i=0;i<n;i++)
  26.         {
  27.                 ll x,y,z;
  28.                 cin>>x>>y>>z;
  29.                 if(y==1 && z==1)
  30.                 v1.pb(x);
  31.                 else if(y==1)
  32.                 v2.pb(x);
  33.                 else
  34.                 v3.pb(z);
  35.         }
  36.         sort(all(v1));
  37.         sort(all(v2));
  38.         sort(all(v3));
  39.         ll i1=0,i2=0,i3=0;
  40.         while(k>0)
  41.         {
  42.                 ll flag1=0,flag2=0;
  43.                 if(i1<v1.size())
  44.                 {
  45.                         ans+=v1[i1++];
  46.                         flag1=1;
  47.                 }
  48.                 else
  49.                 {
  50.                         if(i2<v2.size())
  51.                         {
  52.                                 ans+=v2[i2++];
  53.                                 flag2=1;
  54.                         }
  55.                         if(i3<v3.size())
  56.                         {
  57.                                 ans+=v3[i3++];
  58.                                 flag2++;
  59.                         }
  60.                 }
  61.                 if(flag1==1 || flag2==2)
  62.                 int a=1;
  63.                 else break;
  64.                 k--;
  65.         }
  66.         if(k==0)
  67.         cout<<ans;
  68.         else
  69.         cout<<"-1";
  70.     return 0;
  71. }
Parsed in 0.015 seconds