結果

問題 No.3054 Modulo Inequalities
ユーザー yhddd
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

#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();
}
0