제출 #876230

#제출 시각아이디문제언어결과실행 시간메모리
876230aykhn게임 (IOI14_game)C++17
42 / 100
1088 ms2844 KiB
#include "game.h"
#include <bits/stdc++.h>
 
// author : aykhn
 
using namespace std;
typedef long long ll;
 
#define pb push_back
#define pf push_front
#define ins insert
#define mpr make_pair
#define all(v) v.begin(), v.end()
#define bpc __builtin_popcountll
#define pii pair<ll, ll>
#define pll pair<ll, ll>
#define fi first
#define se second
#define infll 0x3F3F3F3F3F3F3F3F
#define inf 0x3F3F3F3F

int n;
vector<int> adj[1500];
vector<int> used;
int cnt;

void initialize(int N)
{
    cnt = 0;
    n = N;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i == j) continue;
            adj[i].pb(j);
        }
    }
}

void dfs(int a)
{
    used[a] = 1;
    for (int v : adj[a])
    {
        if (used[v]) continue;
        dfs(v);
    }
}

bool check()
{
    used.assign(n, 0);
    dfs(1);
    for (int i = 0; i < n; i++)
    {
        if (!used[i]) return 0;
    }
    return 1;
}

int hasEdge(int u, int v)
{
    cnt++;
    for (int i = 0; i < adj[u].size(); i++)
    {
        if (adj[u][i] == v)
        {
            adj[u].erase(adj[u].begin() + i);
            break;
        }
    }
    for (int i = 0; i < adj[v].size(); i++)
    {
        if (adj[v][i] == u)
        {
            adj[v].erase(adj[v].begin() + i);
            break;
        }
    }
    if (cnt <= n - 2 || check()) return 0;
    adj[u].pb(v);
    adj[v].pb(u);
    return 1;
}

컴파일 시 표준 에러 (stderr) 메시지

game.cpp: In function 'int hasEdge(int, int)':
game.cpp:65:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |     for (int i = 0; i < adj[u].size(); i++)
      |                     ~~^~~~~~~~~~~~~~~
game.cpp:73:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |     for (int i = 0; i < adj[v].size(); i++)
      |                     ~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...