记录编号 84510 评测结果 AAAAAAAAAAA
题目名称 [USACO Nov13]空牛栏 最终得分 100
用户昵称 GravatarChenyao2333 是否通过 通过
代码语言 C++ 运行时间 1.240 s
提交时间 2013-12-14 15:57:27 内存使用 14.60 MiB
显示代码纯文本
//N K
//X Y A B
//f(i)=(A*i+B) mod N

#include<stdio.h>
#include<deque>
using namespace std;

const int MAXN=3000000+10;
typedef long long LL;

int N;
int niu_n[MAXN]={0};

void open(){
	freopen("empty.in","r",stdin);
	freopen("empty.out","w",stdout);
}

inline int f(LL i,LL A,LL B){
	return ((A%N)*(i%N)+(B%N))%N;
}

void read(){
	int k;
	int x,y,a,b;
	scanf("%d %d",&N,&k);
	for(int i=0;i<k;i++){
		scanf("%d %d %d %d",&x,&y,&a,&b);
		for(int j=1;j<=y;j++){
			niu_n[f(j,a,b)]+=x;
		}
	}
}
bool niu[MAXN]={0};

bool ok=true;

inline int inc(int& i){
	i++;
	if(i>=N)ok=false;
	i%=N;
}

int solve(){
	int tail=0;
	for(int i=0;i<N;i++){
		if(ok && tail<i){
			tail=i;
		}
		for(tail;niu_n[i];inc(tail)){
			if(!niu[tail]){
				niu_n[i]--;
				niu[tail]=true;
			}
		}
	}
	if(ok)tail=0;
	for(tail;niu[tail];tail++);
	return tail;
}

int main(){
	open();
	read();
	int ans=solve();
	printf("%d",ans);
	return 0;
}