24pts求调/kk
查看原帖
24pts求调/kk
368204
ShanQing楼主2024/8/26 21:52

调不出黄题,这个人糖丸了。

//writer:Oier_szc

#include <bits/stdc++.h>
//#include <windows.h>
#define ED cerr<<endl;
#define TS cerr<<"I AK IOI"<<endl;
#define cr(x) cerr<<x<<endl;
#define cr2(x,y) cerr<<x<<" "<<y<<endl;
#define cr3(x,y,z) cerr<<x<<" "<<y<<" "<<z<<endl;
#define cr4(x,y,z,w) cerr<<x<<" "<<y<<" "<<z<<" "<<w<<endl;
#define pii pair<int,int>
#define mk make_pair
#define fi first
#define se second
#define ll long long
//#define ull unsigned long long
using namespace std;
const int N=2e3+5,M=1e7+50,INF=2e9;
const int mod[3]={10000019,9999677,9779779};
const int base[3]={6869,5021,2999};
int n,up;
int a[N][3];
int has[3][M];

int getval(int x,int y,int z,int id) {
	return (1ll*x*base[id]*base[id]+1ll*y*base[id]+z)%mod[id];
}

bool check(int x,int y,int z) {
	for(int i=0;i<3;++i) {
		if(!has[i][getval(x,y,z,i)]) {
			return false;
		}
	}
	return true;
}

signed main()
{
	//freopen("qwq.in","r",stdin);
	scanf("%d%d",&up,&n);
	for(int i=1;i<=n;++i) {
		for(int j=0;j<3;++j) {
			scanf("%d",&a[i][j]);
		}
		for(int j=0;j<3;++j) {
			has[j][getval(a[i][0],a[i][1],a[i][2],j)]=1;
		}
	}
	int ans=0;
	for(int i=1;i<=n;++i) {
		for(int j=a[i][2]+1;j<=up;++j) {
			if(check(a[i][0],a[i][1],j)&&check(a[i][1],a[i][2],j)&&check(a[i][0],a[i][2],j)) {
				++ans;
			}
		}
	}
	printf("%d",ans);
	return 0;
}

2024/8/26 21:52
加载中...