#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // C++ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // #include // #include #define rep(i,j,k) for(int i=(int)j;i<(int)k;i++) #define ll long long #define Sort(v) sort(all(v)) //#define INF 1e9 #define LINF 1e18 #define END return 0 #define pb push_back #define se second #define fi first #define pb push_back #define all(v) (v).begin() , (v).end() #define MP make_pair #define int long long using namespace std; int day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; // int dx[]={0,1,0,-1}; // int dy[]={1,0,-1,0}; struct edge{int to,cost;}; //typedef pair P; const long long MOD=1000000007LL; bool isupper(char c){if('A'<=c&&c<='Z')return 1;return 0;} bool islower(char c){if('a'<=c&&c<='z')return 1;return 0;} bool isPrime(int x){if(x==1)return 0;if(x==2)return 1;if(x%2==0)return 0;for(int i=3;i*i<=x;i++)if(x%i==0)return 0;return 1;} bool iskaibun(string s){for(int i=0;i void print(vector v){ for(int i=0;i void printendl(vector v){ for(auto date:v)cout< void printvv(vector> v){ for(int i=0;i>v[i]; int g;cin>>g; int m[]={500,100,50,10,5,1}; rep(i,0,6){ int t=g/m[i]; if(t<=v[i]){ g-=t*m[i]; }else { g-=v[i]*m[i]; } } if(g==0)cout<<"YES"<