D - Folding Machine
#include <cstdio> #include <iostream> #include <map> #include <algorithm> using namespace std; int cmp(int x,int y) { return x>y; } int main() { int n,m; int sum1=0,sum2=0; int a[20],b[20]; map<int,int>s; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; s[a[i]]++; sum1+=a[i]; } int flag=0; sort(a,a+n,cmp); cin>>m; for(int i=0;i<m;i++){ cin>>b[i]; sum2+=b[i]; } if(sum1!=sum2) flag=1; for(int j=0;j<m;j++) { for(int i=0;i<n;i++) { if(b[j]>=a[i]) { if(s[a[i]]!=0) { b[j]-=a[i]; s[a[i]]--; } } } } for(int i=0;i<m;i++) { if(b[i]!=0) { flag=1; break; } } if(flag==0) cout<<'S'<<endl; else cout<<'N'<<endl; return 0; }