제출 #772920

#제출 시각아이디문제언어결과실행 시간메모리
772920fve5Comparing Plants (IOI20_plants)C++17
0 / 100
4077 ms18112 KiB
#include <bits/stdc++.h>
using namespace std;

#define MAXN 200'000

vector<int> adj[MAXN];

void init(int k, vector<int> r) {
    for (int i = 0; i < r.size(); i++) {
        if (r[i] == k - 1) {
            for (int j = 1; j < k; j++) {
                adj[(i + j) % r.size()].push_back(i);
            }
        }
        if (r[i] == 0) {
            for (int j = 1; j < k; j++) {
                adj[i].push_back((i + j) % r.size());
            }
        }
    }
}

int compare_plants(int x, int y) {
    {
        set<int> visited;
        stack<int> q;
        q.push(x);
        while (!q.empty()) {
            auto curr = q.top(); q.pop();
            if (visited.count(curr)) continue;
            if (curr == y) return 1;
            visited.insert(curr);

            for (auto n: adj[curr]) {
                q.push(n);
            }
        }
    }
    {
        set<int> visited;
        stack<int> q;
        q.push(y);
        while (!q.empty()) {
            auto curr = q.top(); q.pop();
            if (visited.count(curr)) continue;
            if (curr == x) return -1;
            visited.insert(curr);

            for (auto n: adj[curr]) {
                q.push(n);
            }
        }
    }
    return 0;
}

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

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