結果
問題 | No.881 sin(x)/xの和 |
ユーザー |
![]() |
提出日時 | 2019-09-07 17:55:24 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 422 ms / 2,000 ms |
コード長 | 1,275 bytes |
コンパイル時間 | 1,063 ms |
コンパイル使用メモリ | 102,164 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-21 08:02:39 |
合計ジャッジ時間 | 6,389 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
#include <cstdio>#include <cstring>#include <iostream>#include <string>#include <cmath>#include <bitset>#include <vector>#include <map>#include <set>#include <queue>#include <deque>#include <algorithm>#include <complex>#include <unordered_map>#include <unordered_set>#include <random>#include <cassert>#include <fstream>#include <utility>#include <functional>#define popcount __builtin_popcountusing namespace std;typedef long long int ll;typedef pair<int, int> P;double sinc(double x){if(abs(x)<1e-7) return 1.0;else return sin(x)/x;}int main(){int n; cin>>n;double ans=0;double a[1010], x[1010];for(int i=0; i<n; i++){cin>>x[i]>>a[i];x[i]-=floor(x[i]);}for(int i=0; i<n; i++){ans+=a[i]*(sinc(-1+x[i])+sinc(x[i])+sinc(1+x[i]));ans+=a[i]*cos(x[i]+1.5)/(2*sin(0.5))/(2+x[i]);ans+=a[i]*sin(x[i]+2)/(4*sin(0.5)*sin(0.5))/(2+x[i])/(3+x[i]);for(int j=2; j<=10000; j++){ans-=a[i]*(1/(x[i]+j)/(x[i]+j+2))*sinc(x[i]+j+1)/(2*sin(0.5)*sin(0.5));}ans+=a[i]*cos(-x[i]+1.5)/(2*sin(0.5))/(2-x[i]);ans+=a[i]*sin(-x[i]+2)/(4*sin(0.5)*sin(0.5))/(2-x[i])/(3-x[i]);for(int j=2; j<=10000; j++){ans-=a[i]*(1/(-x[i]+j)/(-x[i]+j+2))*sinc(-x[i]+j+1)/(2*sin(0.5)*sin(0.5));}}printf("%.10lf\n", ans);return 0;}