题解 P6386 【[COCI2007-2008#4] VAUVAU】

· · 题解

这是一道%你题。

对于一个时间点t,以及给定的a,b,c,d,

ta+b的余数>0\leq a时(此时已经过了整数个周期),第一只狗是暴躁的,否则它不暴躁。

第二只狗同理,因此最后算一下一共几只狗暴躁。

最后将上面的思路转换为代码后打包在函数里,然后调用三次即可。

CODE:


#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,p[10];
string check(int x){
    if(0<x%(a+b)&&x%(a+b)<=a&&0<x%(c+d)&&x%(c+d)<=c){
        return "both";
    }
    if((x%(a+b)>a||x%(a+b)==0)&&(x%(c+d)>c||x%(c+d)==0)){
        return "none";
    }
    else{
        return "one";
    }
}
int main(){
    cin>>a>>b>>c>>d>>p[1]>>p[2]>>p[3];
    for(int i=1;i<=3;++i){
        cout<<check(p[i])<<endl;
    }
    return 0;
} 

要抄窝的题解请理解后再抄qaq。