Submission #473300

#TimeUsernameProblemLanguageResultExecution timeMemory
473300SaraMostafaSan (COCI17_san)C++14
0 / 120
1 ms332 KiB
#include <bits/stdc++.h> #include<unordered_map> using namespace std; #define ll long long #define endl "\n" #define Sara ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); const long long mod=1e9+7; const double PI=acos(-1); // 1 2 3 --> 1,2,3 ...1,2..1,3..1..2,3..2..3..none (2 power number of elements) //1 2 3 --> 2--> 1,2..1,3..2,3..(!n/(r!(n-r)!)) aka:ncr // 1 2 3 -->2-->1,2..2,1..1,3..3,1..2,3..3,2..(n!/(n-r)!) aka:npr //1 2 3--> 1..1,2..1,2,3..2..2,3..3 number of subarrays -->(n*(n+1))/2 "sum of numbers from 1 to n." /* ll power(ll x,ll y) { if(y==0) return 1; else if(y==1) return x%mod; ll r=power(x%mod,((y%mod)/2)%mod); if(y%2==0) return ((r%mod)*(r%mod)); else return ((r%mod)*(r%mod)*(x%mod)); } ll inverse(ll md,ll x) { return power(x%mod,mod-2); } */ ll n,k; vector<pair<ll,ll>>v; ll dp[50][50]; ll solve(int id,int prev,ll sum) { if(id==n) { if(sum>=k) return 1; else return 0; } if(dp[id][prev]!=-1) return 0; ll c1=0,c2=0; if(v[prev].first<=v[id].first) { c1=solve(id+1,id,sum+v[id].second); } c2=solve(id+1,prev,sum); return dp[id][prev]=c1+c2; } int main() { //freopen("input.in","r",stdin); Sara cin>>n>>k; v.resize(n+1); memset(dp,-1,sizeof(dp)); for(int i=0; i<n; i++) cin>>v[i].first>>v[i].second; v[n].first=0; v[n].second=0; cout<<solve(0,n,0); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...