結果
| 問題 |
No.731 等差数列がだいすき
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-09-07 22:08:17 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 1,500 ms |
| コード長 | 746 bytes |
| コンパイル時間 | 143 ms |
| コンパイル使用メモリ | 23,424 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-29 14:30:25 |
| 合計ジャッジ時間 | 883 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 18 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:7:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
7 | scanf("%d",&N);
| ~~~~~^~~~~~~~~
main.cpp:13:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
13 | scanf("%d",A+x);
| ~~~~~^~~~~~~~~~
ソースコード
#include <stdio.h>
int N;
int A[1001];
typedef long long ll;
int main(){
scanf("%d",&N);
ll xysum = 0;
ll xsum = N*(N+1)/2;
ll x2sum = 0;
ll ysum = 0;
for(int x = 1; x <= N; x++){
scanf("%d",A+x);
x2sum += x*x;
ysum += A[x];
xysum += x*A[x];
}
double a = (N*xysum-xsum*ysum)/(double)(N*x2sum-xsum*xsum);
double b = (x2sum*ysum-xysum*xsum)/(double)(N*x2sum-xsum*xsum);
printf("%f %f\n",b+a, a);
double cost = 0;
for(int x = 1; x <= N; x++){
double mody = a*x+b;
cost += ((double)A[x]-mody)*((double)A[x]-mody);
}
printf("%f\n",cost);
}