結果
問題 |
No.3054 Modulo Inequalities
|
ユーザー |
|
提出日時 | 2025-09-04 19:46:35 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,192 bytes |
コンパイル時間 | 2,255 ms |
コンパイル使用メモリ | 194,872 KB |
実行使用メモリ | 39,960 KB |
最終ジャッジ日時 | 2025-09-04 19:47:06 |
合計ジャッジ時間 | 24,264 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 31 |
ソースコード
#include<bits/stdc++.h> // #define int long long using namespace std; static char buf[1000000],*p1=buf,*p2=buf; #define getchar() p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++ inline int read(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+c-48;c=getchar();}return x*f;} const int maxn=3000010; bool mbe; int n,m; int sum[maxn<<1]; int val[maxn]; void work(){ n=read();m=3000001; for(int i=1;i<=n;i++){ int u=read(),v=read(); sum[u+maxn]++,sum[v+maxn]--,sum[u-v+maxn]--; } for(int i=1;i<maxn*2;i++)sum[i]+=sum[i-1]; for(int i=1;i<=m;i++){ for(int j=1;i*j<=m;j++)val[i]+=-sum[i*j-1+maxn];val[i]+=sum[m+maxn]*(m/i); for(int j=-1;i*(j+1)>-m;j--)val[i]+=j*(sum[i*(j+1)-1+maxn]-sum[max(-m,i*j-1)+maxn]); } // for(int i=1;i<=m;i++)cout<<val[i]<<" ";cout<<"\n"; int mx=0;for(int i=1;i<=m;i++)mx=max(mx,val[i]); long long sum=0;for(int i=1;i<=m;i++)if(val[i]==mx)sum+=i; if(val[m]==mx)sum=-1; printf("%d %lld\n",mx,sum); } bool med; int T; signed main(){ // freopen(".in","r",stdin); // freopen(".out","w",stdout); // cerr<<(&mbe-&med)/1024.0/1024.0<<"\n"; T=1; while(T--)work(); }