20ptsWA求助
查看原帖
20ptsWA求助
1282142
Konjac_C楼主2025/1/30 21:01
#include <bits/stdc++.h>
using namespace std;
#define int unsigned long long

const int P=1e7+19,N=1e7+19;

int cnt;
int nxt[N],h[N],e[N],val[N];

int find(int x,int y)
{
	x%=P;
	for(int i=h[x];i!=-1;i=nxt[i]){
		if(e[i]==x){
			int z=val[i];
			val[i]=y;
			return z;
		}
	}
	e[++cnt]=x;
	nxt[cnt]=h[x];
	h[x]=cnt;
	val[cnt]=y;
	return 0;
}
int rd(){ char ch=getchar();int x=0,f=1;while(ch>'9' || ch<'0'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0' && ch<='9')x=(x<<1)+(x<<3)+(ch^48),ch=getchar();return x*f; }
void print(int x){ if(x<0) putchar('-'),x=-x;if(x>9)print(x/10);putchar(x%10+'0'); }
signed main()
{
	memset(h,-1,sizeof(h));
	int T;
	T=rd();
	int ans=0;
	for(int i=1;i<=T;i++){
		int x,y;
		x=rd();y=rd();
		ans+=i*find(x,y);
	} 
	cout<<ans;
	return 0;
}
2025/1/30 21:01
加载中...