# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
473346 | 2021-09-15T12:35:02 Z | AbdoMo | San (COCI17_san) | C++17 | 818 ms | 65540 KB |
#include<bits/stdc++.h> #define int long long #define ll long long #define pb push_back const int mod = 1e9+7; using namespace std; bool comp(string a,string b) { if(a.size()==b.size()) { return a<b; } return a.size()<b.size(); } int n,k; int arr[50][2]; map<int,bool>cal[50]; map<int,int>dp[50]; int rec(int i,int x) { int ans=0; if(i == n-1) { dp[i][x]=(x>=k); cal[i][x]=1; return(x>=k); } bool flag=0; if(x>=k)ans++; for(int j=i+1;j<n;j++) { if(arr[j][0]>=arr[i][0]) { if(cal[j][x+arr[j][1]]) { ans+=dp[j][x+arr[j][1]]; } else { dp[j][x+arr[j][1]]=rec(j,x+arr[j][1]); cal[j][x+arr[j][1]]=1;; } ans+=dp[j][x+arr[j][1]]; } } dp[i][x]=ans; cal[i][x]=1; return ans; } void solve(){ cin>>n>>k; for(int i=0;i<n;i++) { cin>>arr[i][0]>>arr[i][1]; } int ans=0; for(int i=0;i<n;i++) { ans+=rec(i,arr[i][1]); } cout<< ans; } int32_t main(){ int t=1; ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); // cin>>t; while(t--){solve();} return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 332 KB | Output is correct |
2 | Correct | 2 ms | 588 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 129 ms | 17556 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 818 ms | 65540 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 444 ms | 65540 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 814 ms | 65540 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |