10월 4일 대회 소스코드 입니다.

  • astein
    astein

    운영진: 임의로 문제들과 스탠딩, 에디토리얼 링크를 추가합니다. ^^ [문제들과 스탠딩 보기] [에디토리얼 보기]
    A번 소스코드.
    [spoiler="A번 소스코드 보기"]
    #include
    #include
    #include
    using namespace std;
    struct stick {
    int pos;
    int state;
    stick(int a = 0, int b = 0) : pos(a), state(b) {}
    bool operator < (const stick &a) const {
    if (pos == a.pos) return state > a.state;
    return pos < a.pos;
    }
    };
    int main() {
    int n;
    scanf("%d", &n);
    vector a(2 * n);
    for (int i = 0; i < n; i++) {
    scanf("%d", &a[i * 2].pos); a[i * 2].state = 0;
    scanf("%d", &a[i * 2 + 1].pos); a[i * 2 + 1].state = 1;
    }
    sort(a.begin(), a.end());
    n = n * 2;
    int now = 0, ret = 0;
    for (int i = 0; i < n; i++) {
    if (a[i].state == 0) now++; else now--;
    ret >?= now;
    }
    printf("%d\n", ret);
    }
    [/spoiler]
    B번 소스코드.
    [spoiler="B번 소스코드 보기"]
    #include
    #include
    using namespace std;
    int main() {
    int n, a, b;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
    scanf("%d/%d", &a, &b);
    printf("case %d: [", i + 1);
    while (true) {
    if (a % b == 0) {
    printf("%d,", a / b - 1);
    break;
    }
    if (a < 0) {
    printf("%d,", a / b - 1);
    a -= (a / b - 1) * b;
    swap(a, b);
    } else {
    printf("%d,", a / b);
    a = a % b;
    swap(a, b);
    }
    }
    printf("1]\n");
    }
    }
    [/spoiler]
    C번 소스코드.
    [spoiler="C번 소스코드 보기."]
    #include
    #include
    using namespace std;
    int main() {
    int n, ret;
    while (scanf("%d", &n) == 1) {
    ret = 0;
    /* 문제에 n 제한이 없어서 선언을 이렇게.. /
    vector > a(n);
    vector c(n, 0), t(n);
    for (int i = 0; i < n; i++) {
    a[i].resize(n);
    for (int j = 0; j < n; j++)
    scanf("%d", &a[i][j]);
    }
    /
    Prim algorithm /
    c[0] = 1;
    for (int i = 0; i < n; i++) t[i] = a[0][i];
    for (int i = 0; i < n - 1; i++) {
    int now = 2147483647, p;
    for (int j = 0; j < n; j++) {
    if (c[j] == 0 && t[j] != -1 && t[j] < now) {
    now = t[j];
    p = j;
    }
    }
    ret += now;
    c[p] = 1;
    for (int j = 0; j < n; j++) {
    if (a[p][j] == -1) continue;
    if (t[j] == -1 || t[j] > a[p][j]) t[j] = a[p][j];
    }
    }
    /
    End of Prim algorithm */
    printf("%d\n", ret);
    }
    }
    [/spoiler]
    D번 소스코드.
    [spoiler="D번 소스코드 보기."]
    #include
    #include
    using namespace std;
    int main() {
    int n, m;
    while (scanf("%d %d", &n, &m) == 2) {
    vector > a(n, vector (n, 0));
    vector b(m);
    for (int i = 0; i < m; i++)
    scanf("%d", &b[i]);
    bool sw = true;
    if (n * (n - 1) != m * 2) sw = false;
    for (int i = 0; i < m; i++) {
    int q = b[i], w = b[(i + 1) % m];
    if (a[q][w] != 0) sw = false; else a[q][w] = 1;
    if (a[w][q] != 0) sw = false; else a[w][q] = 1;
    }
    if (sw) printf("Accepted\n"); else printf("Wrong Answer\n");
    }
    }
    [/spoiler]
    E번 소스코드.
    [spoiler="E번 소스코드 보기."]
    #include
    using namespace std;
    int a[100][100];
    int b[100][100];
    int main() {
    int n;
    while (scanf("%d", &n) == 1) {
    if (n == 0) break;
    for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
    scanf("%d", &a[i][j]);
    for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
    int mm = 0;
    if (i != 0) {
    mm = b[i - 1][j];
    if (j != 0) mm >?= b[i - 1][j - 1];
    if (j != n - 1) mm >?= b[i - 1][j + 1];
    }
    b[i][j] = mm + a[i][j];
    }
    }
    int ret = b[n - 1][0];
    for (int i = 1; i < n; i++)
    ret >?= b[n - 1][i];
    printf("%d\n", ret);
    }
    }
    [/spoiler]

    [이 글은 과거 홈페이지에서 이전된 글입니다. 원문보기]

    17년 전
1개의 댓글이 있습니다.
  • astein
    astein

    다른 분들 소스 찾는게 귀찮아서 [...] 그냥 제가 짠 소스들로 올립니다.


    17년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.