# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
473347 | 2021-09-15T12:37:45 Z | AbdoMo | San (COCI17_san) | C++17 | 611 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[41][2]; unordered_map<int,bool>cal[41]; unordered_map<int,int>dp[41]; 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]); for(int j=0;j<=40;j++) { dp[j].clear(); cal[j].clear(); } } 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 | 1 ms | 332 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 112 ms | 9232 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 562 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 530 ms | 65540 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 611 ms | 65540 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |