質問
表題の通りTravelingの問題で手こずっています。
https://atcoder.jp/contests/abs/tasks/arc089_a
上の画像の式を元に、連立方程式の整数解を調べるコードを書き、提出しましたが、4と6のケースが不正解になってしまいます。
自分の力ではどこが誤りなのかわからなかったので、お力添えいただければ幸いです。
該当のソースコード
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <math.h> 4 5int main(void){ 6 int N,T,X,Y,hantei=0; 7 int t,n_x,m_x,m_y; 8 int S[(int)pow(10,5)][3]; 9 S[0][0]=0;S[0][1]=0;S[0][2]=0; 10 scanf("%d",&N); 11 for (t=1;t<=N;t++){ 12 scanf("%d %d %d",&S[t][0],&S[t][1],&S[t][2]); 13 } 14 for (t=0;t<N;t++){ 15 T=S[t+1][0]-S[t][0]; 16 X=S[t+1][1]-S[t][1]; 17 Y=S[t+1][2]-S[t][2]; 18 for (n_x=0;n_x<=T;n_x++){ 19 for (m_x=0;m_x<=n_x;m_x++){ 20 if (2*m_x-n_x==X){ 21 for (m_y=0;m_y<=T-n_x;m_y++){ 22 if (2*m_y-(T-n_x)==Y){ 23 hantei++; 24 goto nukeru; 25 } 26 } 27 } 28 } 29 } 30 nukeru: 31 if (hantei<=t){ 32 printf("No"); 33 exit(0); 34 } 35 } 36 printf("Yes"); 37 return 0; 38} 39
試したこと
思いつく限りテストしていますが、どれもきちんと判定(正誤判定は以下の賢い方法で行っています。)できているように思います。
なお、数多ある解説を見て、賢い判定方法があるということは知っていますが、このコードでなぜ弾かれるのかを解決したいので質問させていただいています。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/15 03:42