답안 #935723

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
935723 2024-02-29T12:30:25 Z dilanyan Logičari (COCI21_logicari) C++17
20 / 110
22 ms 8284 KB
//-------------dilanyan------------\\ 
 
#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
#include<stdio.h>
using namespace std;
 
//------------------Kargpefines--------------------\\ 
 
#define ll long long
#define pb push_back
#define all(u) (u).begin(), (u).end()
#define pqueue priority_queue
#define upper upper_bound
#define lower lower_bound
#define umap unordered_map
#define uset unordered_set
 
void KarginSet(string name = "") {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    if (name.size()) {
        freopen((name + ".in").c_str(), "r", stdin);
        freopen((name + ".out").c_str(), "w", stdout);
    }
}
 
//-------------------KarginConstants------------------\\ 
 
const ll mod = 1000000007;
const ll inf = 1e9;
 
//-------------------KarginCode-----------------------\\ 
 
const int N = 200005;

vector<int> g[N];

void KarginSolve() {
    int n; cin >> n;
    for (int i = 0; i < n;i++) {
        int u, v;
        cin >> u >> v;
        g[u].pb(v), g[v].pb(u);
    }
    int s = 0;
    for (int i = 1;i <= n;i++) {
        if (g[i].size() == 2) s++;
    }
    if (s == n) {
        if (n & 1) cout << -1 << '\n';
        else if ((n / 2) & 1) cout << -1 << '\n';
        else cout << n / 2 << '\n';
    }
    else {
        if (n <= 20) {
            int ans = inf;
            for (int i = 0;i < (1 << n);i++) {
                bool flag = true;
                for (int u = 1;u <= n;u++) {
                    int c = 0;
                    for (int v : g[u]) {
                        if (i & (1 << (v - 1))) c++;
                    }
                    if (c != 1) {
                        flag = false;
                        break;
                    }
                }
                if (flag) ans = min(ans, __builtin_popcount(i));
            }
            if (ans == inf) cout << -1 << '\n';
            else cout << ans << '\n';
        }
    }
}

int main() {
    KarginSet();
    int test = 1;
    //cin >> test;
    while (test--) {
        KarginSolve();
    }
    return 0;
}

Compilation message

Main.cpp:1:1: warning: multi-line comment [-Wcomment]
    1 | //-------------dilanyan------------\\
      | ^
Main.cpp:8:1: warning: multi-line comment [-Wcomment]
    8 | //------------------Kargpefines--------------------\\
      | ^
Main.cpp:27:1: warning: multi-line comment [-Wcomment]
   27 | //-------------------KarginConstants------------------\\
      | ^
Main.cpp:32:1: warning: multi-line comment [-Wcomment]
   32 | //-------------------KarginCode-----------------------\\
      | ^
Main.cpp: In function 'void KarginSet(std::string)':
Main.cpp:22:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |         freopen((name + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:23:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |         freopen((name + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4952 KB Output is correct
2 Correct 1 ms 4956 KB Output is correct
3 Correct 1 ms 4956 KB Output is correct
4 Correct 2 ms 4956 KB Output is correct
5 Correct 22 ms 8280 KB Output is correct
6 Correct 22 ms 8252 KB Output is correct
7 Correct 22 ms 8284 KB Output is correct
8 Correct 22 ms 8028 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 4956 KB Output is correct
2 Correct 7 ms 4956 KB Output is correct
3 Correct 5 ms 4956 KB Output is correct
4 Correct 6 ms 4956 KB Output is correct
5 Correct 1 ms 4956 KB Output is correct
6 Correct 3 ms 4952 KB Output is correct
7 Correct 1 ms 4956 KB Output is correct
8 Correct 3 ms 5212 KB Output is correct
9 Correct 14 ms 4956 KB Output is correct
10 Correct 8 ms 4956 KB Output is correct
11 Correct 2 ms 4952 KB Output is correct
12 Correct 7 ms 4956 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 4956 KB Output is correct
2 Correct 7 ms 4956 KB Output is correct
3 Correct 5 ms 4956 KB Output is correct
4 Correct 6 ms 4956 KB Output is correct
5 Correct 1 ms 4956 KB Output is correct
6 Correct 3 ms 4952 KB Output is correct
7 Correct 1 ms 4956 KB Output is correct
8 Correct 3 ms 5212 KB Output is correct
9 Correct 14 ms 4956 KB Output is correct
10 Correct 8 ms 4956 KB Output is correct
11 Correct 2 ms 4952 KB Output is correct
12 Correct 7 ms 4956 KB Output is correct
13 Incorrect 2 ms 4956 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4952 KB Output is correct
2 Correct 1 ms 4956 KB Output is correct
3 Correct 1 ms 4956 KB Output is correct
4 Correct 2 ms 4956 KB Output is correct
5 Correct 22 ms 8280 KB Output is correct
6 Correct 22 ms 8252 KB Output is correct
7 Correct 22 ms 8284 KB Output is correct
8 Correct 22 ms 8028 KB Output is correct
9 Correct 5 ms 4956 KB Output is correct
10 Correct 7 ms 4956 KB Output is correct
11 Correct 5 ms 4956 KB Output is correct
12 Correct 6 ms 4956 KB Output is correct
13 Correct 1 ms 4956 KB Output is correct
14 Correct 3 ms 4952 KB Output is correct
15 Correct 1 ms 4956 KB Output is correct
16 Correct 3 ms 5212 KB Output is correct
17 Correct 14 ms 4956 KB Output is correct
18 Correct 8 ms 4956 KB Output is correct
19 Correct 2 ms 4952 KB Output is correct
20 Correct 7 ms 4956 KB Output is correct
21 Incorrect 2 ms 4956 KB Output isn't correct
22 Halted 0 ms 0 KB -