競技プログラミングについてです。
こちらの問題に対して、
コード1を提出 → 数問WA
コード2を提出 → AC
となりました。
お恥ずかしながら、暫く考えても何故コード1で弾かれたのかわからないので教えていただきたいです。
######コード1
#include <bits/stdc++.h> using namespace std; int n,a[100],i,ave,sum,cnt,j=1; int main() { for(cin>>n;i<n;i++)cin>>a[i],ave+=a[i]; if(ave%n!=0){ cout<<-1<<endl; return 0; } ave/=n; for(i=0;i<n;i++){ sum+=a[i]; if(sum/j!=ave)cnt+=1,j++; else sum=0,j=1; } cout<<cnt<<endl; }
#####コード2
#include <bits/stdc++.h> using namespace std; int n,a[100],i,ave,sum,cnt; int main() { for(cin>>n;i<n;i++)cin>>a[i],ave+=a[i]; if(ave%n!=0){ cout<<-1<<endl; return 0; } ave/=n; for(i=0;i<n;i++){ sum+=a[i]; if(sum!=ave*(i+1))cnt+=1; } cout<<cnt<<endl; }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/02 02:47