RT,非常着急,心态正处于崩溃边缘。 会不会是 ios_base::sync_with_stdio(0); 出问题了?求帮忙看一下。
#include<bits/stdc++.h>
using namespace std;
long long n,k;
long long a[11];
long long c[11];
long long b[500002][2];
long long ans,num;
long long MOD=1000000007;
int flag=0;
void zou1()
{
long long i;
for(i=1;i<=n;i++)
{
num=(num+1)%MOD;
c[1]+=b[i][1];
if(c[1]>a[1]||c[1]<1)
{
flag=1;
return;
}
}
return;
}
void zou2()
{
long i;
for(i=1;i<=n;i++)
{
num=(num+1)%MOD;
c[b[i][0]]+=b[i][1];
if(c[b[i][0]]>a[b[i][0]]||c[b[i][0]]<1)
{
flag=1;
return;
}
}
return;
}
int main()
{
ios_base::sync_with_stdio(0);
freopen("walk.in","r",stdin);
freopen("walk.out","w",stdout);
long long i1,i2,i3,i4,i5;
cin>>n>>k;
for(i1=1;i1<=k;i1++)
cin>>a[i1];
for(i1=1;i1<=n;i1++)
cin>>b[i1][0]>>b[i1][1];
if(k==1)
{
for(i1=1;i1<=a[i1];i1++)
{
num=0;
flag=0;
c[1]=i1;
while(flag==0)
zou1();
ans=(ans+num)%MOD;
}
}
if(k==2)
{
for(i1=1;i1<=a[1];i1++)
{
for(i2=1;i2<=a[2];i2++)
{
num=0;
flag=0;
c[1]=i1;
c[2]=i2;
while(flag==0)
zou2();
ans=(ans+num)%MOD;
}
}
}
if(k==3)
{
for(i1=1;i1<=a[1];i1++)
{
for(i2=1;i2<=a[2];i2++)
{
for(i3=1;i3<=a[3];i3++)
{
num=0;
flag=0;
c[1]=i1;
c[2]=i2;
c[3]=i3;
while(flag==0)
zou2();
ans=(ans+num)%MOD;
}
}
}
}
if(k==4)
{
for(i1=1;i1<=a[1];i1++)
{
for(i2=1;i2<=a[2];i2++)
{
for(i3=1;i3<=a[3];i3++)
{
for(i4=1;i4<=a[4];i4++)
{
num=0;
flag=0;
c[1]=i1;
c[2]=i2;
c[3]=i3;
c[4]=i4;
while(flag==0)
zou2();
ans=(ans+num)%MOD;
}
}
}
}
}
if(k==5)
{
for(i1=1;i1<=a[1];i1++)
{
for(i2=1;i2<=a[2];i2++)
{
for(i3=1;i3<=a[3];i3++)
{
for(i4=1;i4<=a[4];i4++)
{
for(i5=1;i5<=a[5];i5++)
{
num=0;
flag=0;
c[1]=i1;
c[2]=i2;
c[3]=i3;
c[4]=i4;
c[5]=i5;
while(flag==0)
zou2();
ans=(ans+num)%MOD;
}
}
}
}
}
}
cout<<ans;
fclose(stdin);
fclose(stdout);
return 0;
}