这道题有点意思,不过比较简单。。
就直接贴代码了。
hehe....
/*
ID: guo geer
PROG: spin
LANG: C++
*/
#include<fstream>
using namespace std;
int main()
{
ifstream fin("spin.in");
ofstream fout("spin.out");
int angle[5][360];
int speed[5];
int i,j,k;
for(i=0; i<5; i++)
for(j=0; j<360; j++)
angle[i][j] = 0;
for(i=0; i<5; i++)
{
fin>>speed[i];
int n;
fin>>n;
for(j=0; j<n; j++)
{
int a, b;
fin>>a>>b;
for(k=0; k<=b; k++)
angle[i][(a+k)%360] = 1;
}
}
int t = 0;
while(t < 360)
{
bool isOK;
for(i=0; i<360; i++)
{
isOK = true;
for(j=0; j<5; j++)
if(angle[j][(i-(t*speed[j])%360+360)%360] == 0)
isOK = false;
if(isOK == true)
break;
}
if(isOK == true)
break;
/*
bool end = true;
for(i=0; i<5; i++)
if((speed[i] * t)%360 != 0 )
end = false;
if(end == true)
{
t = -1;
break;
}
*/
t++;
}
if(t == 360)
fout<<"none"<<endl;
else fout<<t<<endl;
//system("pause");
return 0;
}