U E D R , A S I H C RSS

Marbles/이동현


,

.
.
ex)
43
1 3 ->
2 4
n = bq+r
43 = 14*3+1 = 3333333333333+3+1 = 3333333333333+4 => 13, 1

35
1 5 ->
20 7

35 = 7*5+0 = 5555555+0 =>7, 0

< 05 05 15>
n2 .
n2 worst case .
2000000000
1 3
1900000000 1900000000
함. ;;
.. ㅠㅠ

~cpp 
#include <iostream>  
using namespace std;  

void main(){ 
	int N[100], n1[100], c1[100], n2[100], c2[100];  
	int tot_arr = 0;  
	for(int i=0;i<100;i++){  
		cin >> N[i]; 
		if(N[i] == 0)   
			break; 
		cin >> c1[i]>> n1[i]>> c2[i] >> n2[i]; 
		tot_arr++; 
	} 
	for(i=0;i<tot_arr;i++){  
		if(c1[i]/(double)n1[i] > c2[i]/(double)n2[i])   //n1    함. 
			swap(n1[i],n2[i]);                       
		int r = N[i]%n1[i];  
		int m1 = N[i]/n1[i];  
		int m2 = -1;     
		for(int k=0; k<=n2[i] ;k++){        
			if(r%n2[i]==0){  
				m2=r/n2[i];     
				cout <<n1[i]<<" "<<m1<<"  "<<n2[i]<<" "<<m2<<"  "<<"\n";                             
				break;                           
			}                        
			r = ((n2[i]/n1[i]==0?1:n2[i]/n1[i])*k+1)*n1[i] + (N[i]%n1[i]);	//r n2  n1  N[i]%n1[i] .		
                           if(r-n2[i]>=n1[i])
				r-=n1[i];
			if(r>N[i] || r<0){
				int tempk;
				if(n2[i]*k>N[i])
					tempk = k-1;				
				else
					tempk = k;				
				if((N[i]-n2[i]*tempk)%n1[i] == 0)
					r = n2[i]*tempk;
				else
					break;
			}			
			m1=(N[i]-r)/n1[i];				
		}  
		if(m2 == -1) 
			cout << "failed\n";      
		cout <<"total " << k << " roops\n";
	} 
} 



~cpp 
#include <iostream>  
using namespace std;  
 
void main(){ 
        int N[100], n1[100], c1[100], n2[100], c2[100];  
        int tot_arr = 0;  
        for(int i=0;i<100;i++){  
                cin >> N[i]; 
                if(N[i] == 0)   
                        break; 
                cin >> c1[i]>> n1[i]>> c2[i] >> n2[i]; 
                tot_arr++; 
        } 
        for(i=0;i<tot_arr;i++){  
                if(c1[i]/(double)n1[i] > c2[i]/(double)n2[i])   //n1    함. 
                        swap(n1[i],n2[i]);                       
                int r = N[i]%n1[i];  
                int m1 = N[i]/n1[i];  
                int m2 = -1;     
                for(int roop=0; roop<=n2[i] ; roop++){ // n2 .  r n1 n2  n2*n1+r  
                                                       // (n2*n1+r)%n2 == r%n2   roop=n2   .             
                        if(r%n2[i]==0){  
                                 m2=r/n2[i];     
                                cout <<n1[i]<<" "<<m1<<"  "<<n2[i]<<" "<<m2<<"  "<<"\n";                             
                                break;                           
                        }                        
                        r+=n1[i];                                
                        m1--;    
                }  
                if(m2 == -1) 
                        cout << "failed\n";      
        } 
} 
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:45
Processing time 0.0132 sec