前提・実現したいこと
AtCoder Beginner Contest 187 B問題について
以下の問題を満たすプログラムを考えています。
xy平面上に1,2,・・・,Nの番号がついたN個の点があります。点iは(xi,yi)にあり、N個の点のx座標は互いに異なります。以下の条件を満たす整数の組(i,j)の個数を求めてその答えを出力してください。
・点iと点jを通る直線の傾きが-1以上1以下である。
入力は以下の形式で与えられる。
N
x1 y1
⋮
xN yN
ここに質問の内容を詳しく書いてください。
発生している問題・エラーメッセージ
コンパイルは通ったのでエラーメッセージはないのですが、
与えられた形式で入力していくとNとx,yを1つずつ入力した後にプログラムが終了してします。
該当のソースコード
C言語
1#include <stdio.h> 2 3int main( void ){ 4 int n, i, j, tilt; 5 int sum=0; 6 scanf("%d", &n); 7 int x[n], y[n]; 8 for(i=0; i<n; i++) 9 scanf("%d %d", x[i], y[i]); 10 for(i=0; i<n-1; i++){ 11 for(j=i+1; j<n; j++){ 12 if(x[j]-x[i] != 0 ){ 13 tilt=(y[j]-y[i])/(x[j]-x[i]); 14 if(tilt<=1 && -1<=tilt ){ 15 sum+=1; 16 } 17 } 18 } 19 } 20 printf("%d", sum); 21 return 0; 22} 23
試したこと
forループの範囲を変えたり改行の位置を変えたりしたのですがおなじような処理になってしまいました。
公式解説ではc++とpythonで行っていたのですが、どちらも読めないため質問させて頂きました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。