题意:一个人在环形跑道上跑,最后距离原点多远?
注意转为long long 时要加0.5,否则会少1.
//#pragma comment(linker,"/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<vector> #include<cmath> #include<queue> #include<stack> #include<map> #include<set> #include<algorithm> #include <stack> #include <iomanip> using namespace std; typedef long long lon; const int SZ=527000,INF=0x7FFFFFFF; const double EPS=1e-8; int main() { //std::ios::sync_with_stdio(0); //freopen("d:\\1.txt","r",stdin); //for(;scanf("%d",&n)!=EOF;) { double ll; lon n; cin>>ll>>n; lon mod=ll*10000+0.5; cout<<mod<<endl; lon res=0; for(int i=0;i<n;++i) { lon a,b; cin>>a>>b; res+=a*b%mod; res%=mod; } res=res*10000%mod; res=min(res,mod-res); cout<<fixed<<setprecision(4)<<1.0*res/10000<<endl; } return 0; }