답안 #1109872

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1109872 2024-11-08T01:49:57 Z ozner77 낙하산 고리들 (IOI12_rings) C++17
0 / 100
160 ms 262144 KB
#include <bits/stdc++.h>
using namespace std;

map<int, int> sumas;
vector<vector<int>> V;
vector<vector<int>> R;
int con1 = 0;
int N;

void Init(int N){
    vector<int> V1(N, 0);
    vector<int> J;
    for(int i = 0; i < N; i++){
        V.push_back(V1);
        R.push_back(J);
    }
}

void Link(int A, int B){
    R[A].push_back(B);
    R[B].push_back(A);
    V[A][B] = 1;
    V[B][A] = 1;
    sumas[A]++;
    sumas[B]++;
}

void cadena(int i, int j, vector<int> visitados){
    visitados[j] = 1;
    if(V[i][j] == 1){
        if(sumas[j] == 2){
            con1++;
        }
    } else {
        if(sumas[j] == 1){
            con1++;
        }
    }
    for(int k = 0; k < R[j].size(); k++){
        if(visitados[R[j][k]] == 0 && R[j][k] != i){
            cadena(i, R[j][k], visitados);
        }
    }
}

int CountCritical(){
    int res = 0;
    for(int i = 0; i < N; i++){
        bool com = true;
        for(int j = 0; j < N; j++){
            if(i != j){
                if(V[i][j] == 1){
                    if(sumas[j] == 1){
                        continue;
                    } else if(sumas[j] > 3){
                        com = false;
                        break;
                    }
                } else {
                    if(sumas[j] == 0){
                        continue;
                    } else if(sumas[j] > 2){
                        com = false;
                        break;
                    } else {
                        vector<int> visitados(N, 0);
                        con1 = 0;
                        cadena(i, j, visitados);
                        if(con1 != 2){
                            com = false;
                            break;
                        }
                    }
                }
            }
        }
        if(com){
            res++;
        }
    }
    return res;
}

Compilation message

rings.cpp: In function 'void cadena(int, int, std::vector<int>)':
rings.cpp:39:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |     for(int k = 0; k < R[j].size(); k++){
      |                    ~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 160 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -