Cod sursa(job #2303321)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 15 decembrie 2018 23:55:11
Problema Multiplu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#define pb push_back

using namespace std ;

ifstream f ("bancomat.in") ;
ofstream g ("bancomat.out") ;

int main ()
{
    int t ; f >> t ;
    while ( t -- )
    {
        struct ban { int val , cant ; } v [ 6 ] ;
        v [ 0 ].val = 1 ; v [ 1 ].val = 5 ; v [ 2 ].val = 10 ; v [ 3 ].val = 50 ; v [ 4 ].val = 100 ; v [ 5 ].val = 500 ; 
        for ( int i = 0 ; i < 6 ; ++ i )    f >> v [ i ].cant ;
        int n ; f >> n ;
        while ( n -- )
        {
            int x ; f >> x ;  
            for ( int i = 5 ; i >= 0 ; i -- )   { x = max ( x % v [ i ].val , x - v [ i ].cant * v [ i ].val ) , v [ i ].cant -= min ( x / v [ i ].val , v [ i ].cant  ) ; }
            if ( x )    g << "NO\n" , n = 0 , v [ 0 ].val = -1 ;
        }
        
        if ( v [ 0 ].val != -1 )  g << "YES\n" ;
        
        
    }
    
    
    return 0 ;
}