牛客小白月赛41 小红的375
题目链接
直接判断一个数是不是375的倍数很难,但是判断一个数是不是3000(注意3000=375 \(\次\) 8)的倍数却很简单
我们能想到任何一个是375的倍数的数都能表示成n \(\次\)3000米\(\次\) 375(m=7)的形式
然后直接枚举m就好了。
#包括牡蛎
# includecstring
#包括
使用命名空间标准;
int len
int tong[13];
char s[300010];
int pan(int a,int b,int c,int d)
{
tong[b]-;tong[c]-;tong[d]-;
for(int I=0;I=9;(一)
if(tong[i]0)
{
tong[b];tong[c];tong[d];
返回0;
}
int now=0,ok=0;
for(int I=1;I=9;(一)
{
now=tong[I]* I;
if(tong[I])ok=1;
}
if((ok | | tong[0]==0)now=anow % 3==a)
{
for(int I=9;I=0;我)
for(int j=1;j=tong[I];j)printf('%d ',I);
printf('%d%d%d ',b,c,d);
返回1;
}
其他
{
tong[b];tong[c];tong[d];
返回0;
}
}
int main()
{
scanf("% s ",S1);莱恩=斯特伦(S1);
for(int I=1;I=lenI)tong[s[I]-' 0 '];
if(pan(0,0,0,0))返回0;
if(pan(0,3,7,5))返回0;
if(pan(0,7,5,0))返回0;
if(pan(1,1,2,5))返回0;
if(pan(1,5,0,0))返回0;
if(pan(1,8,7,5))返回0;
if(pan(2,2,5,0))返回0;
if(pan(2,6,2,5))返回0;
cout '-1 ';
返回0;
}
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/136292.html