Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

자이의 프로그래밍

카잉달력 본문

Algorithm/Cases-Study

카잉달력

Xi_kor 2021. 5. 4. 21:34

처음에 m과 x가 같은 경우, n과 y가 같은 경우를 생각을 못해서 제대로 답이 나오질 않았다! 해당 숫자를 x를 기준으로 하여 x가 m보다 작다면 나눴을 때 나머지가 무조건 x이므로 기본 시작 숫자를 x로 잡았다. 같은 경우에는 나머지가 0이므로 기본 시작 숫자는 0이 된다. 그리고 m만큼씩 늘려가면 해당 숫자는 무조건 m으로 나눴을 때 나머지가 기본 시작 숫자(0 또는 x)가 된다. 따라서 나눴을 때 나머지가 y의 기본 숫자가 되는지만 탐색해주었다.

#include <iostream>
#include <cstring>
using namespace std;

int ch[40010];

int main(){
    int tc;
    cin>>tc;
    
    for(int T=1; T<=tc; T++){
        memset(ch, 0, sizeof(ch));
        int m, n, x, y;
        cin>>m>>n>>x>>y;
        int xnum, ynum;
        
        if(m==x) xnum=0;
        else xnum=x;
        
        if(n==y) ynum=0;
        else ynum=y;
        
        int num=xnum;
        int status=0;
        int cnt=0;
        while(1){
            if(num%n==ynum){
                status=1;
                break;
            }
            num=num+m;
            cnt++;
            
            if(cnt>n) break;
        }
        if(status==1){
            cout<<num<<endl;
        }
        else cout<<"-1"<<endl;
        
    }
    return 0;
}

'Algorithm > Cases-Study' 카테고리의 다른 글

숨바꼭질4  (0) 2021.05.05
리모컨  (0) 2021.05.05
SWEA-1868 파핑파핑 지뢰찾기  (0) 2021.04.28
SWEA-1289 원재의 메모리 복구하기  (0) 2021.04.28
SWEA-4466 최대 성적표 만들기  (0) 2021.04.16