2016.04.21 모임 53

모임 공지

  • 활동 일시: 04월 21일 (목) 19:02
  • 모임 장소: 하이퍼 커넥트 14층
  • 활동 주제: google codejam 2016 Qualification Round + Round 1A

장소는 이곳을 참고 하세요

google codejam 2016 Qualification Round

해설

A. Counting Sheep

문제 링크


숫자 N 을 입력받은 후, N, 2N, 3N, … 을 생성하면서 각 자리 숫자들 가운데 0 ~ 9 까지 모든 숫자가 나타나는 최초의 값을 출력하는 문제


그냥 모든 숫자를 발생시키면서 각 숫자를 저장하면 된다.
0 이 아닌 모든 입력에 대해서 반드시 답이 존재한다는 점만 알면 된다.

소스 코드
#include <cstdio>
#include <iostream>
#include <string>
#include <set>
#include <algorithm>

using namespace std;

bool put(set<char> &s, int num) {
    while (num) {
        s.insert(num % 10);
        num /= 10;
    }
    return s.size() == 10;
}

void solve() {
    int in; cin >> in;
    if (in == 0) {
        cout << "INSOMNIA\n";
        return;
    }

    int now = in;
    set<char> s;
    while (true) {
        if (put(s, now)) break;
        now += in;
    }

    cout << now << endl;
}

int main() {
    int t;
    cin >> t;
    for (int i = 1; i <= t; i++) {
        printf("Case #%d: ", i);
        solve();
    }
}




C. Coin Jam

문제 링크
\( (a+{b}^{k}) \equiv (a+b*({b}^{k-1}))\pmod M \)


Written on April 10, 2016