質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

319閲覧

atcoder abc 304 c virus 解けない

suugakuto

総合スコア7

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2023/06/04 10:57

実現したいこと

atcoder begginer contest 304 c virus を解きたい。

前提

atcoder begginer contest 304 c virus を解いていたところ、一部のテストケースで不正解となる

発生している問題・エラーメッセージ

例えば、
9 4
3 2
6 -1
1 6
6 5
-2 -3
5 3
2 -3
2 1
2 6
に対してYes
No
No
Yes
Yes
Yes
Yes
Yes
No
と出力されなけばならないのに
Yes
No
No
Yes
No
Yes
No
Yes
No
と出力される。

該当のソースコード

c++

1ソースコード 2#include <iostream> 3#include <cstdio> 4#include <cstdlib> 5#include <algorithm> 6#include <cmath> 7#include <vector> 8#include <set> 9#include <map> 10#include <unordered_set> 11#include <unordered_map> 12#include <queue> 13#include <ctime> 14#include <cassert> 15#include <complex> 16#include <string> 17#include <cstring> 18#include <chrono> 19#include <random> 20#include <bitset> 21#include <array> 22using namespace std; 23//setに存在しない人が感染していることを示す 24set<int> se; 25int n, d; 26vector<int> x(2000); 27vector<int> y(2000); 28//今の地点からd以内の人を探す 29void virus(int now) { 30 for (int i = 0; i < n; i++) { 31 if (!(i == now - 1)) { 32 if (se.count(i + 1)) { 33 if ((x[now] - x[i]) * (x[now] - x[i]) + (y[now] - y[i]) * (y[now] - y[i]) <= d*d) { 34 se.erase(i + 1); 35 virus(i); 36 } 37 } 38 } 39 } 40} 41int main() { 42 cin >> n >> d; 43 44 for (int i = 0; i < n; i++) { 45 cin >> x.at(i) >> y.at(i); 46 se.insert(i + 1); 47 } 48 se.erase(1); 49 int now = 0; 50 virus(now); 51 for (int i = 0; i < n; i++) { 52 if (se.count(i + 1)) 53 cout << "No" << endl; 54 else cout << "Yes" << endl; 55 56 } 57 58 59} 60 61### 試したこと 62 63いろいろデバックしてみて、再帰関数virusのところに問題があるようであることはわかったが、デバックではそこのところは見れなかった。 64 65### 補足情報(FW/ツールのバージョンなど) 66

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

now-1の-1をけすとかいけつした

投稿2023/06/05 05:24

suugakuto

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問