감 ¶
문 같기 고,
각는것 렵 만
로그램 는데 들다.
로그램 다과 같 리로 동다.
ex)
43
1 3 -> 개당납
2 4
때 n = bq+r
43 = 14*3+1 = 3333333333333+3+1 = 3333333333333+4 => 13, 1
각는것 렵 만
로그램 는데 들다.
로그램 다과 같 리로 동다.
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
1 5 -> 개당납
20 7
때
35 = 7*5+0 = 5555555+0 =>7, 0
< 05 05 15>
로그램 n2 기가 면 늘난다는 다.
n2가 라면 방 끝나만 다과 같 worst case때는 몇 루를 돌 다.
2000000000
1 3
1900000000 1900000000
그 굉 빠른 로 리 가능게 . 덕 드가 복;;
.. 그 ㅠㅠ
로그램 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"; } }