QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#202422#5160. Kebab PizzaDreamOnWA 1ms5908kbC++231.7kb2023-10-06 01:41:002023-10-06 01:41:00

Judging History

你现在查看的是最新测评结果

  • [2023-10-06 01:41:00]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:5908kb
  • [2023-10-06 01:41:00]
  • 提交

answer

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <map>

#define Maxn 100005

using namespace std;

int n, m, deg[Maxn]; bool selfLoop[Maxn];
map <pair<int, int>, bool> app;

struct Edge {
    int next, to;
}
edge[Maxn * 2];
int head[Maxn], edge_num;

void add_edge(int from, int to) {
    edge[++edge_num].next = head[from];
    edge[edge_num].to = to;
    head[from] = edge_num;
}

bool vis[Maxn]; int maxdeg, mindeg;
void dfs(int u) {
    vis[u] = 1;
    maxdeg = max(maxdeg, deg[u]);
    mindeg = min(mindeg, deg[u]);
    for(int i = head[u]; i; i = edge[i].next) {
        int v = edge[i].to;
        if(vis[v]) continue;
        dfs(v);
    }
}

int main() {
    scanf("%d%d", &m, &n);
    int u, v;
    for(int i = 1; i <= m; ++i) {
        scanf("%d%d", &u, &v);
        if(u > v) swap(u, v);
        if(app.find(make_pair(u, v)) != app.end()) continue;
        if(u == v) selfLoop[u] = 1;
        add_edge(u, v); add_edge(v, u);
        ++deg[u]; ++deg[v]; app[make_pair(u, v)] = 1;
    }
    for(int i = 1; i <= n; ++i) {
        if(deg[i] == 1 && !selfLoop[i]) vis[i] = 1;
    }
    for(int i = 1; i <= n; ++i) if(vis[i]) --deg[i], --deg[edge[head[i]].to];
    int cnt1 = 0, cnt2 = 0, cnt3 = 0;
    for(int i = 1; i <= n; ++i) {
        maxdeg = 0; mindeg = n + 1;
        if(vis[i]) continue;
        dfs(i);
        if(maxdeg == 2 && mindeg == 2) ++cnt2;
        else if(maxdeg == 2 && mindeg == 1) ++cnt1;
        else if(maxdeg <= 1 && mindeg <= 1) ++cnt1;
        else ++cnt3;
    }
    // cout << cnt1 << " " << cnt2 << " " << cnt3 << endl;
    if(cnt3 || (cnt2 > 1) || (cnt2 && cnt1)) cout << "impossible" << endl;
    else cout << "possible" << endl;
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 5908kb

input:

7 6
2 2
3 6
1 1
1 5
4 5
6 6
6 5

output:

impossible

result:

wrong answer 1st lines differ - expected: 'possible', found: 'impossible'